前提・実現したいこと
下記ソースコードのようにシェルスクリプトで、
オプションから受けたパラメータの妥当性をチェックしたいと思っています。
●チェックしたいこと
1.パラメータ数は正しいか?
2.すべてのパラメータの中身は空でないか?(1つでも空文字の場合はエラー)
1で数をチェックしても、「-a 1 -a 2 -b 3 ...」 のように1つのオプションを複数回指定した場合、1のパラメータ数チェックは通ってしまいます。
ですから、2の処理が必要と考えています。
該当のソースコード
sh
1## パラメータチェック 2# IFパラメータを受けているかチェック 3while getopts "a:b:c:d:e:f:g:h:" OPT 4 do 5 case $OPT in 6 a ) apple=$OPTARG;; 7 b ) banana=$OPTARG;; 8 c ) chicken=$OPTARG;; 9 d ) donut=$OPTARG;; 10 e ) egg=$OPTARG;; 11 f ) fish=$OPTARG;; 12 g ) grape=$OPTARG;; 13 h ) hamburger=$OPTARG;; 14 esac 15 done 16 17# 1.パラメータ数は正しいか? 18if [ $# != 16 ];then 19 exit 1 20fi 21 22# 2.すべてのパラメータの中身は空でないか?(1つでも空文字の場合はエラー) 23for 24 do 25 ******************************* 26 done 27 28
こちらについてよい書き方をご存じの方、ご教示願えませんでしょうか。
どうぞよろしくおねがいします。
回答3件
あなたの回答
tips
プレビュー