【问题标题】:Running 'git pull' using shell_exec in PHP not displaying error在 PHP 中使用 shell_exec 运行“git pull”不显示错误
【发布时间】:2011-06-22 22:33:48
【问题描述】:

我正在为 github 创建一个部署脚本,用 PHP 编写。我正在使用shell_execcommand 运行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

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

【问题讨论】:

    标签: php git shell-exec


    【解决方案1】:

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

    在这种情况下,您可以使用

    stderr 重定向到 stdout
    "command    2>&1"
    

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

    【讨论】:

    • 太棒了,我不知道标准输出和标准错误。这样就解决了问题。谢谢!
    【解决方案2】:

    通过搜索一下,我可能找到了answer 来解决您的问题。

    尝试捕获标准错误。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-01
        • 2011-07-05
        • 2018-08-21
        • 2012-05-28
        • 1970-01-01
        • 2012-03-11
        • 2014-08-16
        • 1970-01-01
        相关资源
        最近更新 更多