在 “Linux Mint的16佩特拉” 我键入此命令:Zenity - 不同的返回值
zenity --list --column "test" a b c
我选择项目 'A',那么returnning值是随机
a or a|a
怎么办你解释一下吗?这是一个zenity错误吗? 如何获得'a'?
问候。
在 “Linux Mint的16佩特拉” 我键入此命令:Zenity - 不同的返回值
zenity --list --column "test" a b c
我选择项目 'A',那么returnning值是随机
a or a|a
怎么办你解释一下吗?这是一个zenity错误吗? 如何获得'a'?
问候。
当您使用鼠标双击(或使用键盘上的回车键)来选择“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"
因此,如果值不止一个字符,我们必须分割:'TMP = $(zenity --list --column“test”item1 another and thelast); #将返回值保存在TMP中' 'IFS ='|'读-a数组<<<“$ TMP”; #分割| |如果存在' 'VAL =“$ {array [0]}”;' 'echo $ VAL;' – Jeff
是的,这是一个简单的解决方案来保持正确的结果。但我真的不知道为什么Zenity会返回不同的结果... –
这是一个非常恼人的错误。今年也不是第一次。搜索结果“ - 文本”请选择要打开的文件或目录:“ - 请选择文件或目录打开:” - 选择文件或目录打开:“ - 宽800 --height 600 --column “文件”)
打开= $(回声$开放|切-d “|” -f2)
打印每值在|
分开的列表中:zenity --list --print-column=ALL
(...)并获取整个选定的行。
刚刚发现:select a + keyboard enter returns a | a。选择一个+有效的按钮返回一个。那么如何在两种情况下获得'a'? – Jeff