我寫了一個非常簡單的失敗語句。我仔細檢查了語法,但無法找到出錯的地方。有人可以讓我知道嗎?簡單的case語句在shell腳本中失敗
#!/bin/bash
opt_type=0
function opt_type
{
echo "Opt Porvisioning tool starting..."
echo -e "1. ABC \n2. DEF \n3. HIJ \n"
read opt_input
case $opt_input in
1|abc|ABC)
opt_type=1;
2|def|DEF)
opt_type=2;
3|hij|HIJ)
opt_type=3;
4|exit|Exit) echo "Exiting ..."
*) echo "Please enter a valid entry. Exiting!!"
esac
}
echo $opt_type
./opt_type.sh: line 16: syntax error near unexpected token `)'
./opt_type.sh: line 16: ` 2|def|DEF)
-bash-3.2$
我沒有看到任何這樣的符號(`)那麼爲什麼它抱怨?
除了缺乏;;終結者,你期望「1」匹配'1 | abc | ABC)'?它不會。 – William 2013-02-22 18:42:55
我力圖匹配「1」。但只是出於好奇,我想看看我是否可以通過使用反斜槓(轉義字符)或如果有任何其他方式來匹配「1.」? – itsh 2013-02-26 20:47:04
只要'1. | abc | ABC)'應該這樣做,你不需要逃跑'。'因爲這個案例陳述並不特別。它不是一個正則表達式,它使用文件元字符。順便說一句,如果你的數據看起來像「AbC」,你可以用:1. | [aA] [bB] [cC])(醜陋,但對於短字符串至少有效)。 – William 2013-02-26 22:18:49