如何为变量分配zenity函数并打印用户单击的内容?

时间:2015-01-31 13:39:27

标签: variables echo zenity

我只是在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 $?

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

我的问题是,使用我的代码,当我回显变量时,不会返回任何内容。

有没有人能解决这个问题?

由于

1 个答案:

答案 0 :(得分: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