Bashスクリプトで間違った日付を確認してください。

Bashスクリプトで間違った日付を確認してください。

有効期間を確認しています。scrpt.bash test 2019-05-03

date -d $2 2>: 1>:; c=$?

1の場合、$c日付は無効です。入力すると2019-05-03正しいゼロが表示されます。入力すると2019-05-03uゼロが出ますが、これは間違っています。入力すると2019-05-03uuエラーが発生します。日付が有効であることをどのように確認できますか?

答え1

日付が常に「2019-05-03」形式で提供されている場合は、常に機能できます。

#!/bin/sh -

if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
     echo 'This date is valid'
fi

関連情報