2014-02-26 113 views
1

在 “Linux Mint的16佩特拉” 我键入此命令:Zenity - 不同的返回值

zenity --list --column "test" a b c 

我选择项目 'A',那么returnning值是随机

a or a|a 

怎么办你解释一下吗?这是一个zenity错误吗? 如何获得'a'?

问候。

+0

刚刚发现:select a + keyboard enter returns a | a。选择一个+有效的按钮返回一个。那么如何在两种情况下获得'a'? – Jeff

回答

0

当您使用鼠标双击(或使用键盘上的回车键)来选择“a”时,值为“a | a”。当您选择它并按下“确定”时,该值为“a”。 我不知道为什么。

简单的解决方法可能是:

TMP=$(zenity --list --column "test" a b c) # Save the returned value in TMP 
VAL=${TMP:0:1} # Keep the first character of TMP and put it in VAL 
echo $VAL # VAL = "a", "b" or "c" 
+0

因此,如果值不止一个字符,我们必须分割:'TMP = $(zenity --list --column“test”item1 another and thelast); #将返回值保存在TMP中' 'IFS ='|'读-a数组<<<“$ TMP”; #分割| |如果存在' 'VAL =“$ {array [0]}”;' 'echo $ VAL;' – Jeff

+0

是的,这是一个简单的解决方案来保持正确的结果。但我真的不知道为什么Zenity会返回不同的结果... –

1

这是一个非常恼人的错误。今年也不是第一次。搜索结果“ - 文本”请选择要打开的文件或目录:“ - 请选择文件或目录打开:” - 选择文件或目录打开:“ - 宽800 --height 600 --column “文件”)

解决方法:

打开= $(回声$开放|切-d “|” -f2)

0

打印值在|分开的列表中:zenity --list --print-column=ALL(...)并获取整个选定的行。