[日期工具分享][Shell]为特定命令依次传入顺序日期执行
使用方式:
<本脚本文件名(必要时需要全路径)> <要执行的命令所在的文件名> <开始日期> <结束日期>
- 日期格式:
yyyy-MM-dd
脚本内容:
1 ################################# 2 #! /bin/bash 3 ################################# 4 # how to use: 5 # thisFile yourCommdFile startDate endsDate 6 # the format of date should be yyyy-MM-dd 7 ################################# 8 9 # Time to Long 10 bgnTimeL=`date -d "$2" +%s` 11 endTimeL=`date -d "$3" +%s` 12 ONE_DAY_TML=86400 13 14 # Load the Time 15 for (( i = $bgnTimeL; i < $endTimeL; i=`expr $i + $ONE_DAY_TML` )); do 16 $1 `date -d @$i "+%Y-%m-%d"` 17 done
简单演示:
1 # usr @ XXxxx in ~ [17:58:05] 2 $ cat ~/bin/with-date-to-date-run.sh 3 ################################# 4 #! /bin/bash 5 6 # Time to Long 7 bgnTimeL=`date -d "$2" +%s` 8 endTimeL=`date -d "$3" +%s` 9 ONE_DAY_TML=86400 10 11 # Load the Time 12 for (( i = $bgnTimeL; i < $endTimeL; i=`expr $i + $ONE_DAY_TML` )); do 13 $1 `date -d @$i "+%Y-%m-%d"` 14 done 15 16 # usr @ XXxxx in ~ [18:04:40] 17 $ chmod +x ~/bin/with-date-to-date-run.sh 18 19 # usr @ XXxxx in ~ [18:04:45] 20 $ ~/bin/with-date-to-date-run.sh echo 2009-12-29 2010-01-03 21 2009-12-29 22 2009-12-30 23 2009-12-31 24 2010-01-01 25 2010-01-02 26 27 # usr @ XXxxx in ~ [18:04:48] 28 $
注意:
本脚本第一个参数是要执行的命令,该命令的文件名中最好不要有空格。