我正在关注linux对话框。我无法理解它的行为。这可以正常工作,即正确显示三个复选框。
#!/bin/sh
dialog --backtitle "Test" \
--title "Checkbox test " \
--checklist "Choose from following" 0 0 0 \
apple "The apple is green" on \
mango "The mango is golden" on \
pappaya "The pappaya is brown" on \
2> /tmp/optional.out
OPTIONAL=`cat /tmp/optional.out | \
sed -e "s/\"//g" -e "s/ /|/g" -e "s/|$//"`
echo 'optional :'$OPTIONAL
执行后,我得到以下输出。
optional :apple|mango|pappaya
但是我想向用户显示两个选项。所以我做了以下更改。
#!/bin/sh
dialog --backtitle "Test" \
--title "Checkbox test " \
--checklist "Choose from following" 0 0 0 \
apple "The apple is green" on \
mango "The mango is golden" on \
#pappaya "The pappaya is brown" on \
2> /tmp/optional.out
OPTIONAL=`cat /tmp/optional.out | \
sed -e "s/\"//g" -e "s/ /|/g" -e "s/|$//"`
echo 'optional :'$OPTIONAL
但是在这样做之后我得不到输出,即optional :
。这是为什么?我怎样才能让它发挥作用。
答案 0 :(得分:1)
我现在认为你做了评论并打破了你的行。 (它多次发生在我身上)
你可以试试这个:
#!/bin/sh
dialog --backtitle "Test" \
--title "Checkbox test " \
--checklist "Choose from following" 0 0 0 \
apple "The apple is green" on \
mango "The mango is golden" on \
2> /var/tmp/optional.out
OPTIONAL=`cat /var/tmp/optional.out | \
sed -e "s/\"//g" -e "s/ /|/g" -e "s/|$//"`
echo 'optional :'$OPTIONAL