在介紹 if-then-else 時,不曉得有沒有人發現, if 開頭,結尾就是 fi 呢?沒錯,現在要介紹的 switch-case 他是 case 開頭,esca esac 結尾。也就是把開頭倒著寫就是結尾了,很有趣吧~面白
在一般的判斷式中,我們會選擇 if-then-else 來判斷該怎麼處理,但是如果 if-then-else 太多的話,效率或許就會差那麼一點點,這時候就可考慮接下來介紹的 switch case。
在介紹 if-then-else 時,不曉得有沒有人發現, if 開頭,結尾就是 fi 呢?沒錯,現在要介紹的 switch-case 他是 case 開頭,esca 結尾。也就是把開頭倒著寫就是結尾了,很有趣吧~面白
他的格式如下:
case 判斷式 in
Pattern1 )
Statements
;;
Pattern2 )
Statements
;;
…
esac
其中,在判斷式的部分就是要看判斷式是 Pattern1 還是 Pattern2
…等等,符合那個就執行那個部分的 Script。
接著我們就來寫個小範例程式,這個程式的目的是會列出目前位置的所有檔
案,並且判斷他們的副檔名為何:
#!/bin/bash
for filename in *
do
ext=${filename##*\.}
case "$ext" in
sh) echo "$filename : bash script."
;;
txt) echo "$filename : Text file."
;;
cpp) echo "$filename : c++ source code."
;;
*) echo "$filename : unknow."
esac
done
來看看執行的結果吧!!
首先是我們的當前目錄下有這些檔案:
接著執行我們的範例:
有沒有一種電腦幫我們做事的輕鬆愉快感阿~~
鐵人賽文章分享
13 上一篇 繼續或者跳脫迴圈
15 上一篇 除了互動以外的輸入方式
Ps. 感謝 kenkenzz 大大的指正,
第一段中"case 開頭,esca 結尾"的esca寫錯了 應該是esac