前の日付をシェルスクリプトに引数として渡す

前の日付をシェルスクリプトに引数として渡す

前の日付をコマンドライン引数として渡してスクリプトを実行する必要があります。自動化する必要があります。それでは、古い日付をスクリプトにどのように渡しますか?

たとえば、

sh processFile.sh previousdate previousdate

答え1

GNUの使用date:

previousdate=$( date -d 'yesterday' +'%F' )
sh processFile.sh "$previousdate" "$previousdate"

macOSの場合date

previousdate=$( date -j -v -1d +'%F' )
sh processFile.sh "$previousdate" "$previousdate"

答え2

これを使用して前日を取得してパラメータとして渡すことができます。

 date +%Y-%m-%d -d "1 day ago"

詳しくは、man分と秒を操作できるページをご覧ください。date

答え3

これは働きます:

sh processFile.sh "$(date +"%Y-%m-%d" -d "yesterday")"  "$(date +"%Y-%m-%d" -d "yesterday")"

答え4

存在するオープンBSDFreeBSDとMacOSそしてBSDdate、Illumosおよび他の非GNUシステム:

YESTERDAY="$(date -r $(expr $(date +%s) - $(expr 60 \* 60 \* 24)) +%Y-%m-%d)"
sh processFile.sh $YESTERDAY $YESTERDAY

GNU/Linux ではdateGNU coreutils を使用します。

YESTERDAY="$(date -d-1day +%Y-%m-%d)"
sh processFile.sh $YESTERDAY $YESTERDAY

関連情報