getopts是shell的乙個內建命令,通常用來處理shell命令列選項,但是不能直接處理長選項(如:--prefix=/home等)。
getopts有2個引數,第乙個引數是字串,包括字元和「:」,每乙個字元都是乙個有效的選項,如果字元後面帶有「:」,表示這個字元有自己的引數。第二個引數用來儲存獲取的選項。
shell為getopts提供了2個內建變數:
optarg:儲存相應選項的引數;
例項:
#!/bin/bash執行命令:./getopts.sh -a 11 -b -cecho $*
while getopts ":a:bc" opt #第乙個冒號表示忽略錯誤
do case $opt in
a ) echo $optarg
echo $optind;;
b ) echo "b $optind";;
c ) echo "c $optind";;
? ) echo "error"
exit 1;;
esac
done
echo $optind
shift $(($optind - 1))
#通過shift $(($optind - 1))的處理,$*中就只保留了除去選項內容的引數,可以在其後進行正常的shell程式設計處理了。
echo $0
echo $*
-a 11 -b -c113
b 4c 5
5./getopts.sh
main 處理命令列選項
main 處理命令列選項 int main int argc,char argv 是c 的裡面的 main 函式的一種擴充套件原型 其中int argc 表示的是執行程式時命令列裡所帶引數的個數 1 因為包括了該程式名 如果不帶引數的話那就預設是 1 char argv 引數是字元陣列的指標,也可以...
main處理命令列選項
main處理命令列選項 雨竹清風 main 函式的引數可以是不為空,main 函式中的引數有兩個,乙個是argc表示陣列中元素的個數,乙個是char argv,表示的是指向乙個字串陣列的指標,所以也可以寫成char argv。有參的main 函式可寫為main int argc,char argv ...
命令列選項的處理
2012十二月 19日 對命令列的選項的處理有時是乙個比較頭疼的問題。首先需要從輸入中識別出命令列選項來,通過選項的組合出需要呼叫的具體處理過程。在unix世界中命令列選項有共性,更是千差萬別。如果手工去處理我們的方法一般會先進行分詞,之後進行詞法分析。這個過程的複雜度隨著引數數量的增加而增加。in...