プロが教えるわが家の防犯対策術!

シェルは初心者のため、ご教授ください。

3つの引数を受け取り、値のチェックを行いたいのですが書き方がよくわかりません・・。

やりたいチェックは、
第1引数は 数字じゃなければエラー
第2引数は 文字列が "YES" か "NO"でなければエラー
第3引数は 日付のフォーマットチェック(YYYY/MM/DD以外はエラー)
です。よろしくお願いします。

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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!