エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

前日の日付を取得する

#!/bin/bash

# 時刻を引数で指定されなかった場合に、現在時刻から前日の日付と今日の日付を取得する
#
# 日付を取得するのであれば `date` コマンドを使うのがよいのだけれど、
# オプションに差があるので使い慣れた Ruby に逃げた。
#
# | 系統 | コマンド                      |
# |------|-------------------------------|
# | GNU  | `date -d '1 day ago' +%Y%m%d` |
# | BSD  | `date -v-1d +%Y%m%d`          |

if [ "$1" = "" ]; then
  START_TIME=$(ruby -e 'puts (Time.now - 24 * 60 * 60).strftime("%Y/%m/%d 06:00")')
  END_TIME=$(ruby -e 'puts Time.now.strftime("%Y/%m/%d 06:00")')
else
  START_TIME=$1
  END_TIME=$2
fi

echo start $START_TIME
echo end   $END_TIME