bash指令碼程式設計之case語句及指令碼選項高階

2021-07-16 02:59:56 字數 2098 閱讀 2366

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兩端必須有空白字元,否則...