使用动态参数从命令行执行PHP文件

时间:2014-11-08 10:36:00

标签: php bash shell

我需要运行一个脚本,它将一个日期作为参数。它使用cron配置为每天运行,但我现在需要运行它一段时间。问题是,如果由于表的大小而运行了一天,这将获取所有结果。那么是否可以从shell脚本动态地从开始日期提供每个日期?

例如:如果我需要从update_cron.php运行'2013-10-05',那么它需要运行

php update_cron.php '2013-10-05'
php update_cron.php '2013-10-06'
php update_cron.php '2013-10-07'

直到今天(或指定的结束日期)。我是shell脚本的新手,所以如果有人能给出一个输入,那将会很有帮助。

1 个答案:

答案 0 :(得分:1)

这个功能应该让你入门

iterdate() {
    cur="$1"
    end="$2"
    while [ $cur != $end ] 
    do
     echo php update_cron.php $cur 
     cur=$(date -d "$cur + 1 day"  +%Y-%m-%d)
    done
    }

你可以像这样使用它

$ iterdate 2013-10-05 2013-10-08
php update_cron.php 2013-10-05
php update_cron.php 2013-10-06
php update_cron.php 2013-10-07

只需删除其中的echo即可使其实际运行php update命令。请注意,如果您需要在cron作业中运行它,您可能会发现编写它的脚本而不是函数更容易。然后将以下内容复制到文本文件中并使其可执行

#!/bin/bash
cur="$1"
end="$2"
while [ $cur != $end ] 
do
  echo php update_cron.php $cur 
  cur=$(date -d "$cur + 1 day"  +%Y-%m-%d)
done

然后

$ /path/to/iterdate.sh 2013-10-05 2013-10-08
php update_cron.php 2013-10-05
php update_cron.php 2013-10-06
php update_cron.php 2013-10-07
相关问题