這裏是一種方式的示例使用dialog
。 options
陣列可以通過多種方式建立(見下文)。
#!/bin/bash
cmd=(dialog --keep-tite --menu "Select options:" 22 76 16)
options=(1 "Option 1"
2 "Option 2"
3 "Option 3"
4 "Option 4")
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
for choice in $choices
do
case $choice in
1)
echo "First Option"
;;
2)
echo "Second Option"
;;
3)
echo "Third Option"
;;
4)
echo "Fourth Option"
;;
esac
done
這裏是構建選項陣列的一種方法:
count=0
while read -r dashes1 username dashes2
do
if [[ $dashes1 == --*-- && $dashes2 == --*-- ]]
then
options+=($((++c)) "$username")
fi
done < inputfile
這似乎是有可能的工作,但它給了我一個錯誤:`溫度:行7:附近意外的標記`$語法錯誤((+ C))」 溫度:7號線: `\t \t options + =($((++ c))「$ user」)'` – kasper 2011-02-03 18:41:01
@kasper:腳本中的shebang行是什麼? – 2011-02-03 18:45:17
@丹尼斯威廉姆森#!bin/bash – kasper 2011-02-03 18:54:36