PHP执行shell命令并返回完整输出


PHP execute shell command and return full output

我很难从返回到PHP脚本的shell命令中获得完整的输出。

如果我在终端运行这个命令:

cd /home/moodledata; sh gam-create.sh "12345" "Test" "Mc Person"

然后在终端中得到以下输出:

Creating account for 654321@ourdomain.ac.uk Error 409: Entity already exists. - duplicate

但是,如果我通过PHP脚本运行它:

<?php
$u = "Test";
$s = "Mc Person";
$u = "654321";
exec("cd /home/moodledata; sh gam-create.sh '"$u'" '"$f'" '"$s'"", $retval);
var_dump($retval);

我只得到以下返回的输出:

array(1){
  [0] => string(49) "Creating account for 654321@ourdomain.ac.uk"
}

我没有得到错误信息。

我尝试过使用不同的函数,如shell_exec() passthru()和system(),但无法将完整的输出返回到PHP脚本。

谁能告诉我哪里错了?

欢呼。

对不起,没关系,我现在算出来了。我需要将2>&1附加到命令