通过 shell 将 crontab 中的参数传递给 php 脚本

Passing parameter in crontab through shell to php script

从我的 shell 脚本 test.sh 我想将一些参数传递给 PHP 脚本,该脚本将像这样读取它们:

test.sh

php -q /home/user/files/test.php "" ""
php -q /home/user/files/test.php  

为了测试参数的传递,我只是像这样阅读它们 (test.php):

<?php
   echo 'Arg 1: ' . $argv[1] ."\n";
   echo 'Arg 2: ' . $argv[2] ."\n";
?>

问题是,如果我从 shell 运行 test.sh 使用命令:

./test.sh one two

我的 php 脚本读取两个参数都很好(两次):

Arg 1: one
Arg 2: two
Arg 1: one
Arg 2: two

但是如果我通过 crontab 运行 它无法读取参数,我只得到:

Arg 1: 
Arg 2: 
Arg 1: 
Arg 2: 

Cron 作业如下所示:

20  13  *   *   *   /home/user/files/test.sh one two

如何通过 cron 作业将参数正确传递给 shell 脚本,然后再传递给 php?

您的 php.ini 中可能没有启用 register_argc_argv

使用php的getopt获取命令行参数。

http://php.net/manual/en/function.getopt.php