getopts的使用 語法格式:getopts [option[:]] [DESCPRITION] VARIABLE option:表示為某個腳本可以使用的選項 ":":如果某個選項(option)后面出現了冒號(":"),則表示這個選項后面可以接參數(即一段描述信息DESCPRITION) VARIABLE:表示將某個選項保存在變量VARIABLE中 getopts是linux系統中的一個內置變量,一般用在循環中。每當執行循環是,getopts都會檢查下一個命令選項,如果這些選項出現在option中,則表示是合法選項,否則不是合法選項。並將這些合法選項保存在VARIABLE這個變量中。 getopts還包含兩個內置變量,及OPTARG和OPTIND OPTARG就是將選項后面的參數(或者描述信息DESCPRITION)保存在這個變量當中。 OPTIND:這個表示命令行的下一個選項或參數的索引(文件名不算選項或參數) #!/bin/bashwhile 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 ###執行腳本時,顯示的結果如下### [root@localhost scriptTEAM]# ./test -d 'nice' fixnale The options is d nice 3 fixnale ###顯示信息說明如下### 當輸入-d時,$OPT=d,$OPTARG='nice',因此就會顯示d)...這一部分的信息。 由於這里有一個選項(-d)和一個參數('nice'),$OPTIND指向命令行中下一個選項或參數的索引位置,因此這里即為3。 shift $[$OPTIND-1]表示將文件名前面的選項和參數踢掉