使用动态参数从命令行执行PHP文件
我需要运行一个脚本,它将一个日期作为参数。它使用cron配置为每天运行,但我现在需要在一个时间范围内运行它。问题是,由于表的巨大规模,如果运行一天,它将获取所有结果。那么,是否可以从shell脚本动态地提供从开始日期开始的每个日期 例如:如果我需要从使用动态参数从命令行执行PHP文件,php,bash,shell,Php,Bash,Shell,我需要运行一个脚本,它将一个日期作为参数。它使用cron配置为每天运行,但我现在需要在一个时间范围内运行它。问题是,由于表的巨大规模,如果运行一天,它将获取所有结果。那么,是否可以从shell脚本动态地提供从开始日期开始的每个日期 例如:如果我需要从'2013-10-05'运行update_cron.php,那么它需要运行 php update_cron.php '2013-10-05' php update_cron.php '2013-10-06' php update_cron.php '
'2013-10-05'
运行update_cron.php
,那么它需要运行
php update_cron.php '2013-10-05'
php update_cron.php '2013-10-06'
php update_cron.php '2013-10-07'
直到今天(或指定的结束日期)。我对shell脚本非常陌生,因此如果有人能对此进行输入,这将非常有帮助。此函数将帮助您开始使用
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
为什么它需要两个相同的参数?不。它也可以需要一个日期。我会编辑这个问题。酷。非常感谢,伙计:)