首页 > 解决方案 > 为什么此 YAD 列表代码无法正常工作?

问题描述

我正在尝试将 YAD 合并到我的脚本中以添加更多的 GUI 感觉。(它可能最终会在以后用 Python 编写。)我可以使用类似的代码在代码的早期部分生成一个带有可选项目的列表框,而不会出现问题,但这一点让我很头疼。

x=1
for f in "${Basic_Info[@]}" ; do echo " $x $f" ; x=$(( x + 1 )) ; done 

album=$(for f in "${Basic_Info[@]}" ; do echo FALSE ; echo "$f" ; done | yad --list \
    --center --title="Album selection" --height="$hite" --width="550" --checklist \
     --column="Select" --column="Artist - Album to use:" --print-column="2" )

以上产生以下内容: - 回声循环的屏幕输出 echo 命令的屏幕输出

和:YAD 列表框输出

在此处输入图像描述

如果您看不到所附图片,则问题是:-

使用 echo 的 for 循环在屏幕上产生正确的输出。

传送到 YAD 列表的 for 循环显示不正确的输出。

显然,变量 $hite 会根据 Basic_Info 数组中的项目数而变化,但不会影响不正确的输出。

请有人告诉我发生了什么,因为我开始对这个问题失去理智。

提前谢谢了。

标签: bashcheckboxlistboxyad

解决方案


你在歌曲的名字中有 & 字符。添加 --no-markup 选项到 yad 或通过 sed "s/&/&/g" 过滤循环输出


推荐阅读