如何通过按取消按钮关闭 zenity window?

How to close zenity window by press on Cancel button?

我有 until 循环,但我不知道如何在单击“取消”按钮时中断循环?我的直到循环看起来像这样:

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

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

尝试在点击取消后找到return值信息,并为其做一个表达式。

我想知道它应该在什么条件下才能正常工作 <second cond. for cancel>

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

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

#!/bin/bash

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

    rc=$?
done

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