【Linux學(xué)習(xí)】Shell命令行參數(shù)解析工具getopts是如何使用的_第1頁
【Linux學(xué)習(xí)】Shell命令行參數(shù)解析工具getopts是如何使用的_第2頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、LinuxShellgetopts是如何使的?、學(xué)習(xí)背景最近通過python實現(xiàn)了發(fā)送消息給企業(yè)微信的功能,參考鏈接:但是并不是每臺Linux服務(wù)器上都有合適的python版本,之前這個python腳本是運在Python 2環(huán)境下的,但是可能新的Linux服務(wù)器上裝的是Python 3 之類的,因此可能寫個Shell腳本更加通,因此我準(zhǔn)備來寫個Shell腳本來實現(xiàn)發(fā)送消息給企業(yè)微信。但是寫好的腳本都是需要傳參數(shù)的,因此學(xué)習(xí)下Shell命令參數(shù)解析具getopts是如何使的?其實上篇章中我已經(jīng)有描述了getopts的法,現(xiàn)在來學(xué)習(xí)下。之前有篇章介紹了、getopts 介紹2.1我們先來看看命令的

2、選項在Linux系統(tǒng)中,許多命令都提供了選項,使不同的選項就會得到不通的執(zhí)結(jié)果例如:ls命令,ls命令提供了多個選項:-l、-a、-A、-h、-i等等,每個選項具有不同的功能,如下所:-block-size=M prints sizes in units of1,048,576 bytes. See SIZE format below.-c-g -l,但不列出所有者-group-directories-first-dereference-command-line-symlink-to-dir跟隨命令列出的錄的符號鏈接-hide=PATTERNPATTERN模式的項file-type (-fil

3、e-type), classify (-F)-i, -inode-I, -ignore=PATTERN-k, -kibibytes use 1024-byte blocks-l 使較長格式列出信息print the index number of each filedo not list implied entries matching shell PATTERN-Q, -quote-nameenclose entry names in double quotestimeversion -vuse-u-t退出狀態(tài):0 正常1 般問題 ()2 嚴(yán)重問題 ()bug-coreutilsgnu.or

4、g ls 的錯誤2.2 使getopts實現(xiàn)定義腳本的定義選項我們寫腳本時也可以定義選項,提戶如何使,本介紹如何使getopts命令來處理命令選項。2.2.1getopts option: VARIABLEoption表為某個腳本可以使的選項“:”冒號(:)DESCPRITION如果某個選項(option)后出現(xiàn)了冒號(:),則表這個選項后可以接參數(shù)(即段描述信息DESCPRITION)VARIABLE表將某個選項保存在變量VARIABLE中g(shù)etopts是linux系統(tǒng)中的個內(nèi)置變量,般在循環(huán)中。每當(dāng)執(zhí)循環(huán)是,getopts都會檢查下個命令選項,如果這些選項出現(xiàn)在option中,則表是合法選

5、項,否則不是合法選項。并將這些合法選項保存在VARIABLE這個變量中。getopts還包含兩個內(nèi)置變量,及OPTARG和OPTINDOPTARG就是將選項后的參數(shù)(或者描述信息DESCPRITION)保存在這個變量當(dāng)中。OPTIND這個表命令的下個選項或參數(shù)的索引(件名不算選項或參數(shù))在詳細(xì)錯誤報告模式下:如果getopts檢測到個效的選項,var的值會被設(shè)置為(?);如果getopts檢測到個后需要跟參數(shù)的選項,后沒有參數(shù),var的值也會被設(shè)置為(?)在抑制錯誤報告模式下:如果getopts檢測到個效的選項,var的值會被設(shè)置為(?),變量OPTARG會被設(shè)置為這個效的選項;如果getop

6、ts檢測到個后需要跟參數(shù)的選項,后沒有參數(shù),var的值會被設(shè)置為(:),變量OPTARG會被設(shè)置為這個效的選項2.2.2,前只接受參數(shù),不實事!#法提echo qiyewechat.sh -u USER -t TITLE -c CONTENT -d DETAIL -p PICTURE# 獲取腳本執(zhí)時的選項while getopts u:t:c:d:p: optiondo) usage;esacecho $optionecho $OPTARGdone腳本接收不同的選項,對變量進(jìn)賦值,然后我們打印出選項和選項的值?!綾】選項的值被賦值給【CONTENT變量】【d】選項的值被賦值給【DETAIL變量

7、】【u】選項的值被賦值給【USER變量】【p】選項的值被賦值給【PICTURE變量】【h】選項的話,則調(diào)usage法打印法2.2.31、隨便輸個不存在選項rootubuntu116:/data/gitlabData/auto_back_shell # ./qiyewechat-notifier.sh -sjdadjsjdjsad./qiyewechat-notifier.sh: 法選項- sUsage:qiyewechat.sh -u -t TITLE -c CONTENT -d DETAIL -p PICTUREDescription:USER,.TITLE, .CONTENT, .DETAIL, .2、輸選項 -h./qiyewechat-notifier.sh: 法選項- hTITLE, .3、順序輸完整的正確的選項rootubuntu116:/data/gitlabData/auto_back_shell # ./qiyewechat-notifier.sh -u 00001 -t 標(biāo)題 -c “內(nèi)容” -d 詳情 -p “圖地址”u00001t標(biāo)題cdp4、隨便打亂順序填寫選項rootubuntu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論