我正在尝试编写一个小 bash 脚本,根据一些 GUI 问题执行不同的操作。
这就是我现在的进展:
[Timomey@timomeyswetab ~]$ TEST=`zenity --question`; echo test=$TEST
test=
[Timomey@timomeyswetab ~]$ TEST=`zenity --question`; echo test=$TEST
test=
[Timomey@timomeyswetab ~]$
问题是它没有按预期工作。 TEST 变量应该有一些差异,但我看不到任何差异。我究竟做错了什么?
谢谢
答案1
zenity
不会将您选择的结果写入标准输出。通过在命令行上运行来亲自尝试一下:
$ zenity --question
$
如您所见,没有显示任何内容,这就是变量TEST
为空的原因。
相反,zenity
返回 的值--question
作为其退出状态。这可以通过$?
内部变量来查看(在 bash 中)。
$ zenity --question
选择“否”按钮:
$ echo $?
$ 1
如手册页中所述,0 表示“是”,1 表示“否”,5 表示命令超时。
因此你的命令应该是:
$ zenity --question; echo test=$?
$ test=1
请注意,不同的zenity
命令有不同的行为。正如手册页所解释的,该--entry
命令确实将其输出发送到 std-out:
$ zenity --entry
$ Test 1..2..3..
因此,您的测试将使用此特定命令。