【问题标题】:How to close zenity window by press on Cancel button?如何通过按取消按钮关闭 zenity 窗口?
【发布时间】:2021-04-03 20:16:25
【问题描述】:

我有直到循环,当我单击“取消”按钮时,我无法理解如何中断循环?我的直到循环如下所示:

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

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

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

我想知道它应该在什么条件下才能正常工作而不是&lt;second cond. for cancel&gt;

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

【问题讨论】:

  • 感谢您对第二个条件进行分类。但是,我感觉你需要|| 而不是&amp;&amp;
  • 或者你可以试试... ]] &amp;&amp; [[ second cond. ...
  • 我的意思是,我不知道我应该使用什么条件取消按钮。我认为取消按钮返回退出 $?值,但它不起作用。
  • 您能否更新问题以包含minimal, reproducible example?至少向我们展示你如何称呼 zenity。

标签: linux zenity


【解决方案1】:

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

#!/bin/bash

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

    rc=$?
done

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2014-07-16
    • 2021-04-18
    相关资源
    最近更新 更多