有効期間を確認しています。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