在test.sh寫下如下腳本,
#!/bin/bash
echo "opt:" ${opt}
for opt; do
case $opt in
a)
echo "a "
;;
b)
echo "b "
;;
*)
echo "other "
;;
esac
done
運行結果如下:
./test.sh a b c d
opt:
a
b
other
other
opt沒有賦值,為什麼感覺"for opt; do" 運行了4四次,每次 運行opt取的參數。
不知道具體原因! 有知道的嗎?
opt不是參數列表,原因是處在for循環中,當你沒有in指定列表時,for會默認取命令行參數列表。
所以你代碼改成如下,也會是同樣的結果
for xx; do
echo $xx
done