bash で getopts を使用してコマンド ライン引数を処理しようとしています。要件の 1 つは、(引用符を使用せずに) 任意の数のオプション引数を処理することです。
1 番目の例 (1 番目の引数のみを取得)
madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a
2番目の例(このように動作させたいが、引数を引用する必要はありません」
madcap:~/projects$ ./getoptz.sh -s "a b c"
-s was triggered
Argument: a b c
これを行う方法はありますか?
これが私が今持っているコードです:
#!/bin/bash
while getopts ":s:" opt; do
case $opt in
s) echo "-s was triggered" >&2
args="$OPTARG"
echo "Argument: $args"
;;
\?) echo "Invalid option: -$OPTARG" >&2
;;
:) echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done