![使用动态参数从命令行执行 PHP 文件](https://linux22.com/image/1430023/%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E5%8F%82%E6%95%B0%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%89%A7%E8%A1%8C%20PHP%20%E6%96%87%E4%BB%B6.png)
我需要运行一个脚本,该脚本将以一个日期作为参数。它使用 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
您可以使用该代码:
start_date="2014-10-05"
days=2
for i in $(seq 0 $days);
do
php update_cron.php $(date "+%Y-%m-%d" --date="$start_date +$i days")
done
解释:
start_date="2014-10-05"
:设置开始日期days=2
:设置你想要的天数(注意:2 表示总共 3 天,第 0 天也算)for i in $(seq 0 $days);
:循环$days
时间php update_cron.php $(...)
:php update_cron.php
使用参数执行$(date "+%Y-%m-%d" --date="$start_date +$i days")
:格式化日期并从$start_date
加上$i
天数估算日期