2018年4月11日 星期三
Linux shell -- getopt
while getopts “a:b:c:?” argv # while等待使用者輸入getopts所設定的參數
do case $argv in # case來依據使用者所輸入的值來決定下一步的動作 a) VAR1=$OPTARG ;; # break之意
b) VAR2=$OPTARG ;; c) VAR3=$OPTARG ;; ?) # 無需變數帶入 usage exit ;; esac #結束時『case』字母倒過來 done
echo "$VAR1" "$VAR2" "$VAR3" 測試值是否被帶入
Input :
./filename -a 10 -b 20 -c 30
Output:
10 20 30
getopts的用法是使用一個字串(由引號"..."刮起來)來代表會用到的參數旗標,而冒號?:代表的是該旗標是帶有參數值的。像這個例子中”a:b:c:?”這個字串,代表有a, b, c這三個參數都需要帶有輸入的值,?則不需要帶值。所以接下來的case命令就可以用來處理使用者的輸入,當旗標a, b, c被引用時,他後面所接的參數值就會在case命令中透過變數$OPTARG指定給相對應的變數VAR1, VAR2, VAR3,以進行後續動作。而如果引用?,則直接執行usage函數後即離開exit**。
執行程式是要引用參數旗標的方式是減號加上旗標,後面再跟著參數值,也就是Linux慣用的命令輸入方式: script -option value。
取自:https://ithelp.ithome.com.tw/articles/10105866
請勿轉載,本人個人學習用途之整理
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言