case語句及指令碼選項高階詳解
面向過程程式語言中的控制流(即程式當中的語句)預設是順序執行的。
程式語言的控制結構一共有三類:
1,順序結構
2,選擇結構
(1)if語句
->單分支的if語句
格式:if condition1;then
expression
...fi
->雙分支的if語句
格式:if condition1;then
expression
...else
expression
...fi
->多分支的if語句
格式:if condition1;then
expression
...elif condition2;then
expression
...else
expression
...fi
多分支的if語句,執行效率比較低,因為它是乙個條件接著乙個條件比較的。
(2)case語句
我們選擇結構還有第二個語句,也就是我們的case語句,比多分支的if語句,結構更明晰,使用更簡單,執行效率更高的選擇結構語句。
用法格式:case(關鍵字) switch(變數,這裡引用的是變數的值,而不是變數本身) in
而我們變數的值會有以下幾種情況
value 1)->這不是條件,而是變數的值,變數的第一種值
expression
...;;(沒乙個選項都得以雙分號結尾)
value 2)->第二種值
expression
...;;
...*)
expression
...esac
value的值可以有多個
練習:寫乙個指令碼,要求
讓使用者從鍵盤鍵入內容,然後用我們的指令碼來判斷使用者鍵入了什麼內容並顯示出來
鍵入了數字就顯示數字,鍵入了小寫字母就顯示小寫字母,鍵入了大寫字母就顯示大寫字母
指令碼內容:
指令碼執行結果:
練習:寫乙個指令碼,要求
該指令碼只接收這四個引數其中之一,start,stop,restart,status
然後顯示相對應的內容
指令碼內容:
指令碼執行結果:
練習:寫乙個指令碼,要求
可以接收選項及引數,而後能獲取每乙個選項及引數,並能根據選項及引數做出特定的操作
比如->boke3.sh --add tom,jerry --del tom,blair -v|--verbose -h|--help
指令碼內容:
練習:寫乙個指令碼,要求
指令碼名為boke4.sh
指令碼的用法格式為showlogged.sh -v -c -h|--help
-c選項時,顯示當前系統上登入的所有使用者數,如果同時使用了-v選項,則既顯示同時登入的使用者數,又顯示登入的使用者的相關資訊。
指令碼內容:
指令碼執行結果:
3,迴圈結構
for語句
本文出自 「菜鳥的技術文件」 部落格,請務必保留此出處
bash指令碼程式設計之選項
bash指令碼程式設計之選項 getopts getopts 選項字串 名稱 引數 解析選項引數。getopts 被 shell 過程用於解析可定位的引數作為選項。optstring 字串包含待識別的選項字母 如果乙個字母後面跟 著冒號,則該選項期待乙個引數,而該引數應用空格與選項分開。每次啟動時,...
bash指令碼case與函式
case語句支援的模式 a b a或者b 匹配任意長度的任意字元 匹配任意單個字元 範圍匹配 case語法格式 case 表示式 in 模式1 條件1 模式2 條件2 模式n 條件n 剩餘條件 esac bash指令碼函式 函式 function 實現可被呼叫模組 兩種返回值 1.正常返回值 函式中...
BASH指令碼程式設計之條件測試
條件測試 判斷某需求是否滿足,需要由測試機制來實現 如何編寫測試表示式以實現所需的測試 1 執行命令,並利用命令狀態返回值來判斷 0 成功 1 255 失敗 2 測試表示式 test expression expression expression 注意 expression兩端必須有空白字元,否則...