欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Shell腳本中g(shù)etopts如何使用

Shell腳本中g(shù)etopts如何使用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

我們提供的服務(wù)有:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、巴中ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的巴中網(wǎng)站制作公司

1. getops

getopts是一個解析腳本選項參數(shù)的工具。

(1) 語法格式:getopts [option[:]] [DESCPRITION] VARIABLE

(2) option:表示為某個腳本可以使用的選項.

(3) ":":如果某個選項(option)后面出現(xiàn)了冒號(":"),則表示這個選項后面可以接參數(shù)(即一段描述信息DESCPRITION)

(4) VARIABLE:表示將某個選項保存在變量VARIABLE中

getopts是linux系統(tǒng)中的一個內(nèi)置變量,一般用在循環(huán)中。每當(dāng)執(zhí)行循環(huán)是,getopts都會檢查下一個命令選項,如果這些選項出現(xiàn)在option中,則表示是合法選項,否則不是合法選項。并將這些合法選項保存在VARIABLE這個變量中。

getopts還包含兩個內(nèi)置變量,及OPTARG和OPTIND:

  • OPTARG就是將選項后面的參數(shù)(或者描述信息DESCPRITION)保存在這個變量當(dāng)中。

  • OPTIND:這個表示命令行的下一個選項或參數(shù)的索引(文件名不算選項或參數(shù))

初次使用要注意這幾點:

  • 腳本位置參數(shù)會與optstring中的單個字母逐個匹配,如果匹配到就賦值給name,否則賦值name為問號;

  • optstring中單個字母是一個選項,如果字母后面加冒號,表示該選項后面帶參數(shù),參數(shù)值并會賦值給OPTARG變量;

  • optstring中第一個是冒號,表示屏蔽系統(tǒng)錯誤(test.sh: illegal option -- h);

  • 允許把選項放一起,例如-ab

2. 實驗

(1) getops參數(shù)簡單使用

#!/bin/bash while getopts ':b:d:' OPT &> /dev/null;do  case $OPT in  b)  echo "The options is b"  echo $OPTARG ;;  d)  echo "The options is d"  echo $OPTARG ;;  *)  echo "Wrong Options"  exit 7 ;;  esac # echo $OPT # echo $OPTARG done echo $OPTIND shift $[$OPTIND-1] echo $1

Shell腳本中g(shù)etopts如何使用

執(zhí)行結(jié)果:

./getopts1.sh -d 'nice' fixnale

Shell腳本中g(shù)etopts如何使用

說明:

當(dāng)輸入-d時,$OPT=d,$OPTARG='nice',因此就會顯示d)...這一部分的信息。

由于這里有一個選項(-d)和一個參數(shù)('nice'),$OPTIND指向命令行中下一個選項或參數(shù)的索引位置,因此這里即為3。

shift $[$OPTIND-1]表示將文件名前面的選項和參數(shù)踢掉.

(2) getops參數(shù)進(jìn)一步使用

#!/bin/bash echo $* while getopts ":a:bc:" opt do  case $opt in  a)  echo $OPTARG $OPTIND;;  b)  echo "b $OPTIND";;  c)  echo "c $OPTIND";;  ?)  echo "error"  exit 1;;  esac done echo $OPTIND shift $(( $OPTIND-1 )) echo $0 echo $*

Shell腳本中g(shù)etopts如何使用

執(zhí)行結(jié)果:

./getopts2.sh -a 11 -b -c 6

Shell腳本中g(shù)etopts如何使用

說明:

while getopts ":a:bc:" opt #第一個冒號表示忽略錯誤;字符后面的冒號表示該選項必須有自己的參數(shù)。

  • $optarg 存儲相應(yīng)選項的參數(shù),如上例中的11、6;

  • $optind  總是存儲原始$*中下一個要處理的選項(不是參數(shù),而是選項,此處指的是a,b,c這三個選項,而不是那些數(shù)字,當(dāng)然數(shù)字也是會占有位置的)位置。

optind初值為1,遇到"x",選項不帶參數(shù),optind+=1;遇到"x:",帶參數(shù)的選項,optarg=argv[optind+1],optind+=2;遇到"x::",可選參數(shù),屬于#1和#2之一。

  • 第一行輸出echo $*

  • 第二行,optind初值為1,選項-a的參數(shù)為11,下一個要處理的選項-b位置為3,所以輸出:11 3;

  • 第三行,然后-b要處理的下一個選項-c位置為4,所以輸出:b 4;

  • 第四行,再者-c有參數(shù),所以下一個要處理的位置+2,所以輸出:c 6; 

看完上述內(nèi)容,你們掌握Shell腳本中g(shù)etopts如何使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標(biāo)題:Shell腳本中g(shù)etopts如何使用
文章URL:http://chinadenli.net/article14/pgphge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站建設(shè)、做網(wǎng)站、響應(yīng)式網(wǎng)站標(biāo)簽優(yōu)化、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)