如何通过按下“取消”按钮关闭 Zenity 窗口?

时间:2021-04-03 20:16:25

标签: linux zenity

我有直到循环,但我无法在单击取消按钮时打破循环?我的直到循环看起来像这样:

until [[ "$VAR" == "End" && **<second cond. for cancel>**  ]]; do
...

问题是如果我想关闭窗口,我必须点击红十字。如果我想使用“取消”按钮执行此操作,窗口不会响应。

试图找到点击取消后的返回值信息,并为此做一个表达式。

我想知道它要正常工作的条件是什么<second cond. for cancel>

解决方案:正如有人所说,<secound cond. for cancel> 应该是 $? == 1。现在运行正常。

1 个答案:

答案 0 :(得分:1)

如果您按下取消按钮(或关闭对话窗口,或按下 1),Zenity 会以退出代码 <Escape> 退出。你可以这样写:

#!/bin/bash

rc=0
until [[ $VAR == "End" || $rc == 1 ]]; do
    VAR=$(
        zenity --entry --text "Choose an action"
    )

    rc=$?
done

如果您在文本字段中输入 End 或按下 Cancel 按钮,则此循环将退出。