我在寫一個bash腳本。這是菜單驅動。Case Statement not matching「*」
出於某種原因,我使用case語句,在打印完所有選項後,我使用*來捕獲用戶可能鍵入的任何內容。但由於某種原因,我的輸出沒有完成。
例子:
while [ 1 ]; do
if [ $MAIN_MENU -eq 1 ]; then
printMainMenu
read option
case "$option" in
"1") printDiskSpace;;
"2") printFreeMemory;;
"0") exit;;
"*") echo "Input not understood.";;
esac
fi
done
現在發生的事情是,當我使用的菜單,如果鍵入1,2或0它的正確的事情。但如果我輸入55例如,它會重新顯示菜單,而不迴應「輸入未理解」。
我在這裏錯過了什麼嗎?
謝謝!
你並不需要在所有的報價處理與空格的字符串時除外。 – nemo 2013-03-12 20:43:06
@nemo:或者像'*'這樣的字符串,如果你不希望它們被視爲模式。 :-) – ruakh 2013-03-12 20:44:55
@ruakh是的,當然:) – nemo 2013-03-12 20:45:32