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

时间:2014-08-18 14:52:50

标签: php linux shell

我无法从返回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脚本。

有人可以告诉我哪里出错吗?

干杯。

1 个答案:

答案 0 :(得分:1)

对不起,没关系,我现在就把它搞定了。我需要将2>&1附加到命令