shell處理命令列選項getopts

2021-09-24 10:36:04 字數 766 閱讀 6240

getopts是shell的乙個內建命令,通常用來處理shell命令列選項,但是不能直接處理長選項(如:--prefix=/home等)。

getopts有2個引數,第乙個引數是字串,包括字元和「:」,每乙個字元都是乙個有效的選項,如果字元後面帶有「:」,表示這個字元有自己的引數。第二個引數用來儲存獲取的選項。

shell為getopts提供了2個內建變數:

optarg:儲存相應選項的引數;

例項:

#!/bin/bash

echo $*

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 $*

執行命令:./getopts.sh -a 11 -b -c

-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...