我正在尝试从PHP调用bash脚本。当我从命令行在文本文件上运行此bash脚本时,将获得所需的输出。但是,通过PHP,它只是不输出任何内容。
以下是我的PHP代码。
$output = shell_exec("path/to/script.sh tmp/file.txt");
echo $output;
听起来好像path / to / script是bash脚本的路径,而tmp / file.txt是该脚本的参数。它的输出为空,但是当我在命令行中以相同的输入运行bash脚本时,它会正确执行。为什么会这样?
答案 0 :(得分:0)
这很难不见script.sh来回答,但是我可以看到shell_exec失败时输出null。
您可以尝试使用exec()
函数来查看脚本的退出代码。
php manual exec()
因此代码应为:
exec("path/to/script.sh tmp/file.txt", $output);
echo $output;
您可能会发现这是一个权限问题,阻止该进程对其进行更改。
尝试使用chmod 777 tmp/file.txt