shell中getopt的使用

tingsheng發表於2010-12-08

   getopts配合case來進行操作時有兩個隱含變數:一個是OPTARG,用來取當前選項的值,另外一個是OPTIND,代表當前選項在引數列表中的位移。OPTIND是一個特殊的變數,它的初始值是1,每次getopts處理完一個命令引數後就遞增它,得到getopts要處理的下一個引數。

   下面的例子可參考:

>cat test4
#!/bin/bash
while getopts "ab:cd:" Option
# b and d take arguments
#
do
case $Option in
a) echo -e "a = $OPTIND";;
b) echo -e "b = $OPTIND $OPTARG";;
c) echo -e "c = $OPTIND";;
d) echo -e "d = $OPTIND $OPTARG";;
esac
done
shift $(($OPTIND - 1))

>sh test4 -a -b foo -cd bar
a = 2
b = 4 foo
c = 4
d = 6 bar

>sh test4 -ab foo
a = 1
b = 3 foo

>sh test4 -a -c
a = 2
c = 3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7734298/viewspace-681159/,如需轉載,請註明出處,否則將追究法律責任。

相關文章