1
私は私のスクリプトの次のように有効な呼び出しを取得しようとしている:シェル:オプション引数を設定するか、getoptsを使用してデフォルト値を使用しますか?
sh name.sh -l -a
sh name.sh -l
これは私がこれまで-aは必須の引数ですgetoptsは、使用しているコードです:
をgetoptsにオプション引数-aを設定する方法を知る必要があります。 ありがとう:)
私は私のスクリプトの次のように有効な呼び出しを取得しようとしている:シェル:オプション引数を設定するか、getoptsを使用してデフォルト値を使用しますか?
sh name.sh -l -a
sh name.sh -l
これは私がこれまで-aは必須の引数ですgetoptsは、使用しているコードです:
をgetoptsにオプション引数-aを設定する方法を知る必要があります。 ありがとう:)
私が知る限り、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
[getoptsはとオプションオプション引数]の可能な複製を(http://stackoverflow.com/questions/11517139/optional-option-argument-with-getopts ) – qzb
@qzbいいえ、私はgetoptsを使用していて、それなしでやりたいとは思わない。 – Momina