1

我正在为 github 创建一个部署脚本,用 PHP 编写。我正在使用shell_exec命令运行git pull它工作正常。

当拉取错误时,就会出现我的问题。如果我在终端中这样做,我会得到完整的错误。例如:

git pull origin master
Updating f706749..8468d24
test.txt: needs update
error: Entry 'test.txt' not uptodate. Cannot merge.

但是当我在shell_exec输出中运行相同的命令时被截断为

Updating f706749..8468d24
test.txt: needs update

错误消息被截断,可能是因为它是对先前响应的响应。有没有办法返回完整的输出?

4

3 回答 3

7

10-1 缺少的行不是写入stdout而是写入stderr

在这种情况下,您可以将标准错误重定向到标准输出

"command    2>&1"

2>&1将错误消息重定向到正常的输出文件。

于 2011-06-22T22:38:17.853 回答
1

通过搜索,我可能已经找到了您问题的答案。

尝试捕获标准错误。

希望这会有所帮助,祝你好运!

于 2011-06-22T22:36:57.233 回答
0

将错误通过管道传输到您的输出。在 exec 命令中使用 2> 这是“标准错误”流。

于 2011-06-22T22:39:34.450 回答