2017-04-07 82 views
0

我正在關注下面的linux對話框。我無法理解它的行爲。這工作正常,即正確顯示三個複選框。linux對話框--checklist錯誤

#!/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

也許有太多的零... –

+0

@ L'L'升經檢查發現。只放兩個零並檢查。沒有工作。 – Promod

+0

@我也嘗試過。沒有工作。 – Promod

回答

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 
+0

謝謝!你是上帝。這解決了它。 – Promod