bash - 为什么此 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" )
和:YAD 列表框输出
如果您看不到所附图片,则问题是:-
使用 echo 的 for 循环在屏幕上产生正确的输出。
传送到 YAD 列表的 for 循环显示不正确的输出。
显然,变量 $hite 会根据 Basic_Info 数组中的项目数而变化,但不会影响不正确的输出。
请有人告诉我发生了什么,因为我开始对这个问题失去理智。
提前谢谢了。
解决方案
你在歌曲的名字中有 & 字符。添加 --no-markup 选项到 yad 或通过 sed "s/&/&/g" 过滤循环输出
推荐阅读
- bash - Jenkins - 在 sh 脚本中分配变量
- mql4 - 如何获得低买高卖但代码错误的订单
- python - 如何使用 pmw 将 .py 转换为 .exe?
- swift - Swift:使用带有选项的 Logger
- android - 如何在 android 中使用 smack 创建自定义 Iq 节
- xml - 如何从 basexserver 发布 XML 结果?
- rust - 这个函数可以在 Rust 中创建吗?
- reactjs - 是什么导致了 notistack 的这个排队小吃栏错误?
- android - 如何在 Android 中创建圆形 CardView?
- postgresql - 如何使用 gorm 包从 golang 调用 postgres 存储过程