case ... esac 與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構。
case 語句匹配乙個值或乙個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:
case 值 incase工作方式如上所示。取值後面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。模式1)
command1
command2
command3
;;模式2)
command1
command2
command3
;;*) command1
command2
command3
;;esac
取值將檢測匹配的每乙個模式。一旦模式匹配,則執行完匹配模式相應命令後不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
下面的指令碼提示輸入1到4,與每一種模式進行匹配:
echo 'input a number between 1 to 4'echo 'your number is:\c'
read anum
case
$anumin1
) echo 'you select 1';;2
) echo 'you select 2';;3
) echo 'you select 3';;4
) echo 'you select 4'
;;*) echo 'you do not select a number between 1 to 4'
;;esac
輸入不同的內容,會有不同的結果,例如:
input a number between 1 to 4your number is:3
you select 3
再舉乙個例子:
#!/bin/bashoption
="$"
case$in
-f)file
="$"
echo "file name is $file"
;;-d
)dir
="$"
echo "dir name is $dir"
;;*)
echo "`basename $`:usage: [-f file] | [-d directory]"
exit
1# command to come out of the program with status 1
;;esac
執行結果:
$./test.shtest.sh: usage: [ -f filename ] | [ -d directory ]
$ ./test.sh -f index.htm
$ vi test.sh
$ ./test.sh -f index.htm
file name is index.htm
$ ./test.sh -d unix
dir name is unix
$
一百七十五
簡介 openid connect簡稱為oidc,已成為internet上單點登入和身份管理的通用標準。它在oauth2上構建了乙個身份層,是乙個基於oauth2協議的身份認證標準協議。oauth2實際上只做了授權,而openid connect在授權的基礎上又加上了認證。oidc的優點是 簡單的基...
IT女人,從二十五到三十五
it女人,從二十五到三十五 伴著老公和兒子的酣聲,一氣完成了此文,這周沒有工作的日子讓我很無奈。我的三十五歲是去年秋天在家裡過的,因為乙個月前老闆讓我回家。11月的時候,不甘心又找了乙份工作,但是今天又開始找工作了。兩次失去工作都是一樣的經歷,給所任職公司做 有人做網頁,但是沒人出內容,我就負責 的...
十五周總結
時間總是想留也留不住,從學設計模式到現在關於設計模式的總結我寫得不多,看設計模式的時候總是感覺作者寫的這些東西都很對,針對具體情況,本著擴充套件性強 方便繼承能復用的方向去解決。對於 大話設計模式 上的例子,要想真正的要理解透了,方便以後自己在專案編碼中更快的應用到設計模式,大家也都體會到了,就設計...