引数の解析を含む bash スクリプトを作成しています。使用法は次のとおりです。
$ ./my_script.sh -a ARG_1 -b ARG_2 [-c LIST_OF_ARGS...]
を使用して、それぞれの値とgetopts
を解析-a
して取得することができます。ユーザーが最後の引数として配置した場合にのみ、のすべての値を含むリストを取得して作成することもできます。-b
ARG_1
ARG_2
-c
-c
LIST_OF_ARGS...
-c
しかし、ユーザーに最後のフラグとして挿入を強制したくありません。たとえば、スクリプトを次のように呼び出すことができれば素晴らしいでしょう。
$ ./my_script.sh -b ARG_2 -c V1 V2 V3 -a ARG_1
これが私の現在のコードです:
while getopts a:b:c opt
do
case $opt in
a)
A_FLAG=$OPTARG
;;
b)
B_FLAG=$OPTARG
;;
c)
# Handle values as regular expressions
args=("$@")
C_LIST=()
for (( i=$OPTIND-1 ; i <= $#-1 ; i++ ))
do
C_LIST=("${C_LIST[@]}" ${args[$i]})
done
;;
?)
usage
;;
esac
done