2016-09-03 27 views
1

我試圖讓下面的我的腳本爲有效電話:殼牌:設置使用getopts的可選參數或使用默認值?

sh name.sh -l -a 
sh name.sh -l 

這是我迄今使用getopts的代碼,其中-A是一個必需的參數:

​​

我只需要知道如何在getopts中設置可選標誌-a以及它的參數。 謝謝:)

+0

[與getopts的可選選項參數(的可能的複製http://stackoverflow.com/questions/11517139/optional-option-argument-with-getopts ) – qzb

+0

@qzb沒有,我使用getopts的和不想做沒有它。 – Momina

回答

0

據我所知,getopts具有可選的選項參數不支持。你可以自己通過處理選項參數解決此:

#!/bin/bash 

while getopts "x" o; do 
    case "${o}" in 
    x) 
     OPTARG=${!OPTIND} 

     if [ "${OPTARG:0:1}" == "-" ] || [ "$#" -lt "$OPTIND" ]; then 
     OPTARG="DEFAULT" 
     else 
     OPTIND=$(($OPTIND + 1)) 
     fi 

     echo $OPTARG 
     ;; 
    esac 
done