タイトル
TOPIT関連覚え書きシェル(Shell)サンプル → This Page
シェル(Shell)サンプル

指定日数分の日付文字列取得

前提

実施環境(以下の両方でテストしてます)
Red Hat 5.3+bash-3.2
Windows7+Cygwin1.7.9

サンプル


loopDateWhile.sh
#!/bin/sh

# --------------------------------------------------
# whileループで10日前までの日付文字列を1つずつ取得
# --------------------------------------------------

echo "Start"

# 今日の日付を出力
DATE=`date "+%Y%m%d"`
echo "TODAY - ${DATE}"

i=1
while [ ${i} -le 10 ]; do
	# ループで1日ずつ過去の日付を出力
	DATE=`date -d "${i} days ago" "+%Y%m%d"`
	echo "${i} - ${DATE}"
	i=`expr ${i} + 1`
done

echo "End"

loopDateFor.sh
#!/bin/sh

# --------------------------------------------------
# forループで10日前までの日付文字列を1つずつ取得
# --------------------------------------------------

echo "Start"

# 今日の日付を出力
DATE=`date "+%Y%m%d"`
echo "TODAY - ${DATE}"

COUNT="1 2 3 4 5 6 7 8 9 10"
for i in ${COUNT}
do
	# ループで1日ずつ過去の日付を出力
	DATE=`date -d "${i} days ago" "+%Y%m%d"`
	echo "${i} - ${DATE}"
done

echo "End"


実行結果

Start
TODAY - 20110804
1 - 20110803
2 - 20110802
3 - 20110801
4 - 20110731
5 - 20110730
6 - 20110729
7 - 20110728
8 - 20110727
9 - 20110726
10 - 20110725
End


サンプルのダウンロード

サンプル一式(zip)
文字コードUTF-8、改行コードLFです。

更新履歴

2011/08/06 本ページ新規追加


TOPIT関連覚え書きシェル(Shell)サンプル → This Page