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

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

我需要运行一个脚本,该脚本将以一个日期作为参数。它使用 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天数估算日期

相关内容