date(GNU)を使い日付の計算をする。
■使用されると想定される箇所
- ログやバックアップファイルの管理など
■動作確認
- Red Hat Linux Advanced Server release 2.1ASの「date(GNU)」コマンドでは出来た
■欠点
- GNU系のdateコマンドでしか使えない
■利点
- 複雑な計算式を使わなくてもうるう年を含め計算が出来る
- 責任をdateコマンドのせいにすることが出来る(笑)
■使い方
1.前日の日付を求める
-----
# date --date '1 day ago' +%Y%m%d
20060613
-----
「1 day ago」の部分が一日前と言う意味
「%Y%m%d」は出力する日付のフォーマット
結果を変数に入れることも出来る(スクリプト内での例)
-----
DATE=`date --date '1 day ago' +%Y%m%d`
-----
2.入力された日付の前日を求める
-----
# date -d '20060301 1 day ago' +%Y%m%d
20060228
# date -d '20040301 1 day ago' +%Y%m%d
20040229
-----
「1 day ago」の部分が一日前と言う意味
「%Y%m%d」は出力する日付のフォーマット
「20060301」 または「20040301」は入力される日付
スクリプトの引数で日付を指定し、その日付から前日の日付を出力するスクリプトも作成できる
-----
#!/bin/sh
DATE=`date -d "$1 1 day ago" +%Y%m%d`
echo ${DATE}
-----
コメント