shellのgetoptsを使ってコマンドライン引数の解析を行いたいのですが、
optionの名前に単語(文字列)を使用することはできないのでしょうか?
-aや-bなど、1文字でoptionの名前を指定できることはわかったのですが、
-abなどのように、2文字以上の文字列を使用して引数を受け取ることができません。
上記の-abという記述の場合、-aと-bをまとめたという意味になってしまい、
abという一つの文字列として認識されない。
shell
1while getopts a:b: opt 2 do 3 case ${opt} in 4 a) 5 KOKUGO=${OPTARG};; 6 b) 7 SANSU=${OPTARG};; 8 \?) 9 exit 1;; 10 esac 11done 12echo "国語=${KOKUGO}" 13echo "算数=${SANSU}"
上記を実行すると、下記のように値が確認できる
./test.sh -a 80 -b 90
国語=80
算数=90
shell
1while getopts kokugo:sansu: opt 2 do 3 case ${opt} in 4 kokugo) 5 KOKUGO=${OPTARG};; 6 sansu) 7 SANSU=${OPTARG};; 8 \?) 9 exit 1;; 10 esac 11done 12echo "国語=${KOKUGO}" 13echo "算数=${SANSU}"
しかし、こちらを実行しても値が確認できない
./test.sh -kokugo 80 -sansu 90
国語=
算数=
上記のような、「-kokugo 80」といった形で引数を指定する方法はあるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/08 06:38