首頁 > 後端開發 > Golang > 如何在 Golang 中捕獲並列印 Shell 命令標準錯誤的即時輸出?

如何在 Golang 中捕獲並列印 Shell 命令標準錯誤的即時輸出?

Susan Sarandon
發布: 2024-12-10 03:03:09
原創
374 人瀏覽過

How to Capture and Print Realtime Output from a Shell Command's Standard Error in Golang?

如何從Golang 中的Shell 命令檢索即時輸出並列印處理後的資訊

在本指南中,我們將重點放在特定的我們執行即時產生輸出的shell 指令的場景,例如ffmpeg。我們的目標是穩定地檢索此輸出,並根據它提供的資料列印處理後的資訊。

讓我們分解原始程式碼並解釋問題:

問題在於假設輸出會傳送到 stdout,但實際上,ffmpeg 會將診斷​​訊息傳送到 stderr。為了捕捉所需的輸出,我們需要透過管道傳輸 stderr 流。以下是解決此問題的修訂後的程式碼:

現在,程式碼從 stderr 管道讀取並列印它接收到的單字。這確保我們捕獲並顯示 ffmpeg 產生的診斷訊息。

例如,如果ffmpeg 的進度條如下所示:

我們的程式碼將逐行擷取並列印這些單字line:

然後您可以使用這些單字來解析相關資訊並相應地更新您的進度。

以上是如何在 Golang 中捕獲並列印 Shell 命令標準錯誤的即時輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板