2 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
為了完整起見,我發(fā)布了我為解決此問題而編寫的實(shí)際代碼:
shell_exec( 'git pull --progress origin master 2>/home/user/domain.com/stderr.txt' );
這會(huì)將所有“進(jìn)度”樣式的輸出消息寫入一個(gè)名為 stderr.txt 的文件,然后可以從單獨(dú)的進(jìn)程動(dòng)態(tài)讀取該文件。

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
Unix 命令行程序通過詢問標(biāo)準(zhǔn)流 (stdin/stdout/stderr) 是否連接到終端來區(qū)分交互式和非交互式用法。PuTTY 是一個(gè)終端,因此git pull
以交互模式運(yùn)行。git pull
將進(jìn)度寫入 stderr。
在網(wǎng)絡(luò)(CGI、PHP 等)下,stderr 被重定向到 httpd 服務(wù)器日志,因此git pull
在非交互模式下運(yùn)行。您可以git pull
使用 option強(qiáng)制顯示進(jìn)度,--progress
但您還必須將 stderr 重定向到 stdout,以便您可以捕獲輸出。
- 2 回答
- 0 關(guān)注
- 188 瀏覽
添加回答
舉報(bào)