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

时间:2016-11-19 12:53:30

标签: php shell cron crontab cron-task

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

test.sh

php -q /home/user/files/test.php "$1" "$2"
php -q /home/user/files/test.php $1 $2

为了测试参数的传递,我只是像这样阅读它们( 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?

1 个答案:

答案 0 :(得分:0)

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

使用php&#39; s getopt获取命令行参数。

请参阅http://php.net/manual/en/function.getopt.php