2016-09-03 7 views
1

私は私のスクリプトの次のように有効な呼び出しを取得しようとしている:シェル:オプション引数を設定するか、getoptsを使用してデフォルト値を使用しますか?

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

これは私がこれまで-aは必須の引数ですgetoptsは、使用しているコードです:

​​

を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 
関連する問題