フラグの順序に関係なく、特定のフラグへの複数の引数を処理できるようにしたいと考えています。これは受け入れられると思いますか?改善点はありますか?
そう:
$ ./script -c opt1 opt2 opt3 -b foo
opt1 opt2 opt3
foo
コード:
echo_args () {
echo "$@"
}
while (( $# > 0 )); do
case "$1" in
-b)
echo $2
;;
-c|--create)
c_args=()
# start looping from this flag
for arg in ${@:2}; do
[ "${arg:0:1}" == "-" ] && break
c_args+=("$arg")
done
echo_args "${c_args[@]}"
;;
*)
echo "huh?"
;;
esac
shift 1
done