• ベストアンサー

シェルの引数の入力チェックをしたい・・

シェルは初心者のため、ご教授ください。 3つの引数を受け取り、値のチェックを行いたいのですが書き方がよくわかりません・・。 やりたいチェックは、 第1引数は 数字じゃなければエラー 第2引数は 文字列が "YES" か "NO"でなければエラー 第3引数は 日付のフォーマットチェック(YYYY/MM/DD以外はエラー) です。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

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 が無いと、大の月・小の月・うるう年などを地道に調べる必要あり。