2
4日前の日付が現在の日付と等しくなければならないスクリプトを作成しようとしています。以下は私が作成したものの、答えについてはっきりしていないものです。UNIXシェルスクリプトで日付の範囲を繰り返す
#!/bin/bash
batchdate=`date --date "4 day ago" '+%Y%m%d'`
matchdate=`date --date "today" '+%Y%m%d'`
for i in {0..4}
do
if [ $batchdate != $matchdate && $NEXT_DATE != $matchdate ]; then
NEXT_DATE=$(date +%Y%m%d -d "$batchdate + $i day")
echo "$NEXT_DATE"
break
fi
done
'batchdate'と' matchdate'は等しくないでしょう。 2つの異なる日付に初期化され、どちらの変数の値も決して変更しません。 – chepner
しかし、2つの日付テスト、すなわち '&&'の代わりに '||'をORすることを意味するかもしれません。がんばろう。 – shellter
また、 'matchdate'と' batchdate'/'NEXT_DATE'の2つの異なるフォーマットを使用して、文字列が決して等しくないことをさらに保証します。 'bash'は日付比較を行わず、文字列の比較のみを行います。 – chepner