オプション文字列 ":a:b" を使用して Bash スクリプトを実行getopts
していて、次のコマンド ライン パラメーターを指定するとします。
./script.sh -a foo bar -b bar zappo
「foo」のインスタンスは、オプションの予期される引数ですがa
、オプションb
には予期される引数がありません。ただし、「bar」のインスタンスと「zappo」のインスタンスの両方は、 では受け入れられませんgetopts
。を実行した後getopts
、受け入れられないすべての引数のリストを含む変数をエコーするにはどうすればよいですか? 「bar bar zappo」というリストを作成するにはどうすればよいですか? ありがとう!
便利なコードを次に示します。
#!/bin.bash
option_string=":a:b"
unexpected_parameters=""
OPTIND=1
while getopts "${option_string}" options; do
case ${options} in
a)
echo "-a triggered with parameter ${OPTARG}" >&2 # output to STDERR
;;
b)
echo "-b triggered" >&2 # output to STDERR
;;
\?)
echo "invalid option: -${OPTARG}" >&2 # output to STDERR
;;
esac
#<insert code magic... unexpected_parameters="${unexpected_parameters} "$(MAGIC)"">
done
echo "unexpected parameters: ${unexpected_parameters}"