linux对话框 - 检查列表错误

时间:2017-04-07 11:02:52

标签: linux bash shell scripting

我正在关注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 :。这是为什么?我怎样才能让它发挥作用。

1 个答案:

答案 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