2012-01-09 53 views
7

,我需要使用對話框界面,使在bash腳本單選列表,例如,如果我有以下列表中的單選列表獲取項目名稱:的bash腳本:如何使用對話框

dialog --backtitle "OS infomration" \ 
--radiolist "Select OS:" 10 40 3 \ 
1 "Linux 7.2" off \ 
2 "Solaris 9" on \ 
3 "HPUX 11i" off 

我想,當用戶選擇一個選項,然後按OK我的腳本讀取項目名稱(而不是項目編號)。

有可能嗎? 謝謝!

回答

3

你可以把你的預期結果在一個數組:

array=(Linux Solaris HPUX) 
var=$(dialog --backtitle "OS infomration" \ 
--radiolist "Select OS:" 10 40 3 \ 
1 "Linux 7.2" off \ 
2 "Solaris 9" on \ 
3 "HPUX 11i" off >/dev/tty 2>&1) 

printf '\n\nYou chose: %s\n' "${array[var - 1]}" 
+0

我想類似的東西,但沒有直接的解決方案嗎?例如,當您使用inpunt框時,插入的值存儲在stderr上? – Ivan 2012-01-09 21:32:20

+0

可能有,但我不知道一個。這可能是你最接近的解決方案。其他人可能會回答一個問題。 – jordanm 2012-01-09 21:46:07

+0

這是我正在尋找的答案 - 一個告誡,重定向語法是倒退(常見腳本錯誤),它應該>/dev/tty 2>&1我認爲? http://www.gnu.org/software/bash/manual/bashref.html#Redirections – synthesizerpatel 2014-07-16 00:16:37