从PHP调用Bash脚本未输出正确的值

时间:2019-03-21 23:30:43

标签: php bash

我正在尝试从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脚本时,它会正确执行。为什么会这样?

1 个答案:

答案 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

更改文件权限