【问题标题】:Zenity - different returned valuesZenity - 不同的返回值
【发布时间】:2014-03-29 15:22:51
【问题描述】:

在“Linux Mint 16 Petra”上输入以下命令:

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

我选择项目'a',那么返回值是随机的

a or a|a

你怎么解释这个?这是一个zenity错误吗? 如何只得到'a'?

问候。

【问题讨论】:

  • 刚刚发现:select a +键盘回车返回a|a。选择一个+有效按钮返回一个。那么如何在两种情况下都获得“a”?

标签: list zenity


【解决方案1】:

当您通过鼠标双击(或键盘上的回车键)选择“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 andthelast); # Save the returned value in TMPIFS='|' read -a array <<< "$TMP"; # split on | if existsVAL="${array[0]}";echo $VAL;
  • 是的,这是保持正确结果的简单解决方案。但我真的不知道为什么 Zenity 会返回不同的结果...
【解决方案2】:

这是一个非常烦人的错误。今年也不是第一个。

open=$(find "${@}" -iname "$string" | zenity --list --title "搜索结果" --text "请选择要打开的文件或目录:" --width 800 --height 600 --column "文件")

解决方法:

opens=$(echo $open | cut -d "|" -f2)

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2018-02-19
      • 2020-02-19
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      相关资源
      最近更新 更多