日次でログ解析を自動化するときなどに、実行日の昨日に相当するタイムスタンプ(YYYYMMDD形式)を取得する方法をよく使う。何かの都合で期日指定で動かしたいことを想定したパラメータ処理を入れておくと、次のようになる。

引用時の改行が上手く表示できなかったので、リライト。
ちなみに、上記シェルでyesterday取得するときに日付をまたがると
期待しない値になる場合(*1)があるので、

とするのが良い。(ちょっと手抜きしすぎでしたね)

*1 以下のようなケースが想定される。

1.年をまたがる場合(例:2006/12/31→2007/01/01)
  YYYYとMMの間(MMとDDの間も同じ現象)
  ・期待する値
   YYYY=2006
   MM=12
   DD=30
  ・期待しない値
   YYYY=2006
   MM=12
   DD=31

2.月をまたがる場合(例:2007/01/31→2007/02/01)
  YYYYとMMの間(MMとDDの間も同じ現象)
  ・期待する値
   YYYY=2007
   MM=01
   DD=30
  ・期待しない値
   YYYY=2007
   MM=01
   DD=31

3.毎月1日から同2日をまたがる場合(例:2007/02/01→2007/02/02)
  YYYYとMMの間
  ・期待する値
   YYYY=2007
   MM=01
   DD=31
  ・期待しない値
   YYYY=2007
   MM=02
   DD=01

  MMとDDの間
  ・期待する値
   YYYY=2007
   MM=01
   DD=31
  ・期待しない値
   YYYY=2007
   MM=01
   DD=01

4.2007/01/01から2007/01/02をまたがる場合
  YYYYとMMの間
  ・期待する値
   YYYY=2006
   MM=12
   DD=31
  ・期待しない値
   YYYY=2006
   MM=01
   DD=01

  MMとDDの間
  ・期待する値
   YYYY=2006
   MM=12
   DD=31
  ・期待しない値
   YYYY=2006
   MM=12
   DD=01