0

我只是在 zenity 中测试一些功能并且遇到了一个小问题。

我希望能够在我运行zenity -question到变量时分配用户输入的内容,但是当我这样做时,我无法回显用户输入的内容。

我正在使用的代码是:

#!/bin/bash

ans=$(zenity --question --title="Confirm" --text="Please choose yes or no.")

echo $ans

在其他论坛上,人们建议这样做:

#!/bin/bash

zenity --question --title="Confirm" --text="Please choose yes or no."

echo $?

这有效,但我知道$?它只包含最近运行的命令的退出状态。我希望能够将用户输入的内容保存到变量中,以便稍后我可以在脚本中使用答案,即使我运行的东西已经覆盖了$?.

我的问题是,当我回显变量时,我的代码没有返回任何内容。

有没有人有这个问题的解决方案?

谢谢

4

1 回答 1

1

退出状态包含答案:

  • 0 = 是
  • 1 = NO(或对话窗口关闭)
  • 5 = 超时

例子

#!/bin/bash

zenity --question --timeout=3 --title="Confirm" --text="Please choose YES or NO within 3 seconds."
answer=$?

if [ "$answer" -eq 0 ]; then
    echo 'YES'
elif [ "$answer" -eq 1 ]; then
    echo 'NO'
elif [ "$answer" -eq 5 ]; then
    echo 'timeout'
fi

exit 0
于 2015-03-18T17:33:54.350 回答