Yad中的Bash变量。
yad'!'字段分隔符不分隔字段。
在研究了yad手册页和其他yad资源的其他问题后,这让我很难过。
我正在尝试在yad形式的组合框中使用变量。
从列表中读取变量(cam_list) - 在这种情况下,列出了两个相机模型,每个模型后跟九个参数 - (在这种情况下不设置,对问题不重要)
450D 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
N3300 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
变量$ cam1和$ cam2声明如下 - 文本文件中的第1和第11个条目。
cam1=$(awk 'BEGIN { FS = " " } ; { print $1 }' $cam_list)
cam2=$(awk 'BEGIN { FS = " " } ; { print $11 }' $cam_list)
检查变量
echo $cam1 $cam2
450D N3300
将$ cam1和$ cam2放入yad表单字段
yad --form --center --text="test" \
--field="Camera":CB \
"$cam1!$cam2"
或者这样
"$cam1"!"$cam2"
相同的结果
进一步用双引号括起变量只显示$ cam1 ......
""$cam1"!"$cam2""
行为与复选框相同。例如;
yad --form --center --title="$TITLE" \
--text="Please select a camera" \
--field="$cam1":CHK \
'TRUE!FALSE' \
--field="$cam2":CHK \
'TRUE!FALSE'
没有足够的声誉来发布第三张图片,但扩展的变量被分组到一个复选框,而第二个复选框与变量没有关联 - 很奇怪。
这很令人头疼,但它确实有效 - 变量正确扩展
--field="ImageMagick threads":NUM \
"$defaultcores"!1.."$CORES"!1!0 \
我不确定这是一个问题还是我的申请。我有一大堆yad对话框和一个paned笔记本(6个标签)在同一个bash脚本中运行良好。
答案 0 :(得分:0)
这是你的问题:
检查变量
echo $cam1 $cam2 450D N3300
你看,如果你单独检查它们,你会得到这个:
echo $cam1
450D N3300
echo $cam2
也就是说,$cam1
包含" 450D \ nN3300 \ n"并且$cam2
包含""。在这两种情况下,$1
是文件的第一个字段,$11
是......没有。如果你想为此使用awk,那么你需要在条件中检查NR
。
cam1=$(awk 'NR==1 { print $1 }' "$cam_list")
cam2=$(awk 'NR==2 { print $1 }' "$cam_list")
答案 1 :(得分:0)
VAR1 ='test1!test2!test3'ANS = $(yad --form --field =“combo1:CBE” 'test1!test2!test3' --field =“no-edit combo:CB”'test1!test2!test3'\ --field =“combo2:CBE”“$ VAR1”)
selected = $(echo $ ANS | awk'{print $ 1 $ 2 $ 3}'| tr'|'“\ n”) echo $ selected
当字符串包含时,必须使用单引号!如 否则,yad会以不同于字段分隔符的方式对待它。
我知道我没有使用你的$ cam1和$ cam2 var,因为它太先进了 对我来说,但至少我可以向你保证我的例子可行并可能触发 你问题的'WOW'时刻(只开玩笑!)