質問: シェルの引数の入力チェックをしたい・・ シェルは初心者のため、ご教授ください。 3つの引数を受け取り、値のチェックを行いたいのですが書き方がよくわかりません・・。 やりたいチェックは、 第1引数は 数字じゃなければエラー 第2引数は 文字列が "yes" か "no"でなければエラー 第3引数は 日付のフォーマットチェック(yyyy/mm/dd以外はエラー) です。よろしくお願いします。
回答: 1)数字以外を削除して元と同じなら数字のみだとわかる a=`echo "$1" | sed 's/[^0-9]//g'` if test "$1" = "$a" then echo 数字だけ else echo エラー fi 2) if test "$2" = yes -o "$2" = no then echo yes か no else echo エラー fi 3) これは難しい。gnu date (linux等のdate)を前提とすれば出来ます。 a=`date +%y/%m/%d -d "$3"` if test "$3" = "$a" then echo yyyy/mm/dd形式の日付データ else echo エラー fi gnu date が無いと、大の月・小の月・うるう年などを地道に調べる必要あり。