bash日付アクション
適用背景:現在の日付に基づいて必要なファイル名を生成したり、10日以内のファイルを生成したりすることがよくありますが、このファイル名は日付に関連しています.
次の例を見てください.
実行結果を確認します.
次の例を見てください.
[zcm@bash #48]$cat dateoper.sh
#!/bin/bash
today=`date +%Y%m%d`
filename="pre_"$today"_tail.txt"
echo $today
echo $filename
echo
n=5
if [ $# -eq 1 ]; then
let n=$1
fi
bak=$n # n
echo " $n :"
while [ $n -gt 0 ]
do
# temp=`date --date="$n day ago" +%Y%m%d`
temp=`date --date="$n days ago" +%Y%m%d`
filename="pre_"$temp"_tail.txt"
echo $filename
let n=n-1
done
echo
let n=bak # n
echo " $n :"
while [ $n -gt 0 ]
do
temp=`date --date="$n day" +%Y%m%d`
# temp=`date --date="$n days" +%Y%m%d`
filename="pre_"$temp"_tail.txt"
echo $filename
let n=n-1
done
echo
[zcm@bash #49]$
実行結果を確認します.
[zcm@bash #49]$./dateoper.sh
20111129
pre_20111129_tail.txt
5 :
pre_20111124_tail.txt
pre_20111125_tail.txt
pre_20111126_tail.txt
pre_20111127_tail.txt
pre_20111128_tail.txt
5 :
pre_20111204_tail.txt
pre_20111203_tail.txt
pre_20111202_tail.txt
pre_20111201_tail.txt
pre_20111130_tail.txt
[zcm@bash #50]$./dateoper.sh 3
20111129
pre_20111129_tail.txt
3 :
pre_20111126_tail.txt
pre_20111127_tail.txt
pre_20111128_tail.txt
3 :
pre_20111202_tail.txt
pre_20111201_tail.txt
pre_20111130_tail.txt
[zcm@bash #51]$