bash指令碼程式設計之選項

2021-07-22 06:27:28 字數 1164 閱讀 6159

bash指令碼程式設計之選項

getopts: getopts 選項字串 名稱 [引數]

解析選項引數。

getopts 被 shell 過程用於解析可定位的引數作為選項。

optstring 字串包含待識別的選項字母;如果乙個字母後面跟

著冒號,則該選項期待乙個引數,而該引數應用空格與選項分開。

每次啟動時,getopts 會將下乙個選項放到 shell 變數 $name

中,如果 name 變數不存在則先將其初始化,而下乙個待處

理的引數序號放入 shell 變數 optind 中。optind 變數在每

次 shell 或者 shell 指令碼啟動時都被初始化為1。當乙個選項要

求有乙個引數時,getopts 將引數放入 shell 變數 optarg

中。getopts 有兩種報告錯誤的方法。如果 optstring 變數的第

乙個字元是冒號,getopts 使用沉默錯誤報告。在這種模式

下,不會列印錯誤訊息。如果看到了乙個無效的選項,

getopts 將找到的選項字元放至 optarg 變數中。如果乙個必

須的選項沒有找到,getopts 放乙個 ':' 到 name 變數中並且設

置 optarg 變數為找到的選項字元。如果 getopts 不在沉默模

式中,並且遇到了乙個無效的選項,getopts 放置乙個 '?' 到 name

變數中並且反設定 optarg變數。如果必須的選項沒有找到,

乙個'?'會被放入 name變數中,optarg 將被反設定,並且會

列印乙個診斷資訊。

如果 shell 變數 opterr 的值為0,getopts 禁用

錯誤資訊的列印,即使 optstring 變數的第乙個字元不是一

個冒號。opterr 的預設值為1.

getopts 通常解析可定位的引數($0 - $9),不過如果提供了

更多的引數,它們反而會被解析。

getopts ":b:d:" swich

第乙個冒號表示不顯示錯誤資訊

b和d表示接受的引數,並儲存至swich中

b和d後面的冒號表示必須要接受乙個引數

選項後的引數儲存至getopts內建變數optarg中,一次僅乙個(多個選項用迴圈讀取)

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

case語句及指令碼選項高階詳解 面向過程程式語言中的控制流 即程式當中的語句 預設是順序執行的。程式語言的控制結構一共有三類 1,順序結構 2,選擇結構 1 if語句 單分支的if語句 格式 if condition1 then expression fi 雙分支的if語句 格式 if condi...

BASH指令碼程式設計之條件測試

條件測試 判斷某需求是否滿足,需要由測試機制來實現 如何編寫測試表示式以實現所需的測試 1 執行命令,並利用命令狀態返回值來判斷 0 成功 1 255 失敗 2 測試表示式 test expression expression expression 注意 expression兩端必須有空白字元,否則...

bash程式設計之 函式

函式 復用 模組程式設計 語法 function f name f name 呼叫 使用函式名 函式名出現的地方,會被自動替換為函式 練習 利用函式改寫此前的服務指令碼 bin bash prog basename 0 lockfile var lock subsys prog start stop...