我有直到循环,但我无法在单击取消按钮时打破循环?我的直到循环看起来像这样:
until [[ "$VAR" == "End" && **<second cond. for cancel>** ]]; do
...
问题是如果我想关闭窗口,我必须点击红十字。如果我想使用“取消”按钮执行此操作,窗口不会响应。
试图找到点击取消后的返回值信息,并为此做一个表达式。
我想知道它要正常工作的条件是什么<second cond. for cancel>
解决方案:正如有人所说,<secound cond. for cancel>
应该是 $? == 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
按钮,则此循环将退出。