从我的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";
?>
问题是,如果我test.sh在shell中使用命令运行www.example.com:
./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 Job看起来像这样:
20 13 * * * /home/user/files/test.sh one two
如何通过cron作业将参数正确地传递给shell脚本,然后再传递给php?
2条答案
按热度按时间a8jjtwal1#
您可能没有在php.ini中启用
register_argc_argv
。使用php的
getopt
获取命令行参数。参见http://php.net/manual/en/function.getopt.php
xwbd5t1u2#
如果你不能改变你phpini;你可以把选项设置为pram到php
或者在bash脚本中引用它们
并通过全局服务器在脚本中访问它们