getopts解析命令行參數(shù)

內(nèi)部命令 getopts 可以很方便地處理命令行參數(shù)。一般格式為:getopts options variable

getopts 的設(shè)計目標(biāo)是在循環(huán)中運(yùn)行,每次執(zhí)行循環(huán),getopts 就檢查下一個命令行參數(shù),并判斷它是否合法。即檢查參數(shù)是否以 - 開頭,后面跟一個包含在 options 中的字母。

如果是,就把匹配的選項(xiàng)字母存在指定的變量 variable 中,并返回退出狀態(tài)0;如果 - 后面的字母沒有包含在 options 中,就在 variable 中存入一個 ?,并返回退出狀態(tài)0;如果命令行中已經(jīng)沒有參數(shù),或者下一個參數(shù)不以 - 開頭,就返回不為0的退出狀態(tài)。

如果在需要參數(shù)的選項(xiàng)之后沒有找到參數(shù),它就在給定的變量中存入 ? ,并向標(biāo)準(zhǔn)錯誤中寫入錯誤消息。否則將實(shí)際參數(shù)寫入特殊變量 :OPTARG

另外一個特殊變量:OPTIND,反映下一個要處理的參數(shù)索引,初值是 1,每次執(zhí)行 getopts 時都會更新。

#參數(shù)后面有冒號表示輸入?yún)?shù)后面還有參數(shù)值,參數(shù)值被保存在OPTARG中
while getopts ns:t:A:b:o:p:u:m:N:d: c; do
    case $c in
    n) BeNice=N;;
    s) SysGov="-s $OPTARG";;
    t) TimeOut=$2; TimeOut=$((TimeOut / Delay));;
    A) args=$OPTARG;;
    b) batchFile=$OPTARG;;
    o) OutFile=$OPTARG;;
    p) PageNumber=$OPTARG;;
    u) rDir=~$OPTARG/;;
    d) delay=$OPTARG;;
    m) memo="-m "$OPTARG;;
    N) Notify=$OPTARG;;
#   ?) echo "$Usage"; exit 2;;
    esac
done
#最后將這些參數(shù)移位
shift $((OPTIND - 1))```
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,371評論 2 33
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評論 19 139
  • [TOC] ##Assoc 顯示或修改文件擴(kuò)展名關(guān)聯(lián) Assoc [.Ext[=[Filetype]]] .Ex...
    btijjj閱讀 479評論 0 1
  • 【作者】徐天擇 【導(dǎo)師】袁文魁 【作品講解】 1. 原文 凝碧池 王維 萬戶傷心生野煙, 百僚何日更朝天。 秋槐葉...
    九天葉瀾娜閱讀 411評論 0 0
  • 明天就是星期四啦,提醒同學(xué)們帶上科學(xué)老師留的作業(yè)??! 前兩天我跟媽媽一起做的這個作業(yè),首先媽媽先讓我找一個小碗,在...
    朱嘉誠11閱讀 236評論 0 2

友情鏈接更多精彩內(nèi)容