「日付」関数を使用して変数を作成し、型はyyyymmdd(20151031など)でなければなりません。また、1日を削除し(つまり、20151031が20151030になる)、bashを使用します。
ありがとうございます!
答え1
date +%Y%m%d
現在の日付を印刷するために使用されます。昨日の日付を印刷する
ために使用されます(GNU)。 (FreeBSD)を使用してください。date --date '1 day ago' +%Y%m%d
date
date -v -1d +Y%m%d
答え2
bash-4.2以降にはサポートが組み込まれています(ksh93の同様の機能に触発されました):
printf -v now '%(%s)T' -1
printf '%(%Y%m%d)T\n' "$((now - 86400))"
YYYYMMDD形式で昨日の日付(86400秒前の日付)を印刷します。冬/夏時間の切り替えが発生する特定の夜間(昼の長さが23時間または25時間の場合)に実行すると、機能しなくなる可能性があります。
次の形式で作成すると、これらの特殊なケースに対してより信頼性が高くなります。
printf -v now '%(%s:%H)T' -1
printf '%(%Y%m%d)T\n' "$((${now%:*} - 3600 * (12 + ${now#*:})))"