如何從Golang 中的Shell 命令檢索即時輸出並列印處理後的資訊
在本指南中,我們將重點放在特定的我們執行即時產生輸出的shell 指令的場景,例如ffmpeg。我們的目標是穩定地檢索此輸出,並根據它提供的資料列印處理後的資訊。
讓我們分解原始程式碼並解釋問題:
問題在於假設輸出會傳送到 stdout,但實際上,ffmpeg 會將診斷訊息傳送到 stderr。為了捕捉所需的輸出,我們需要透過管道傳輸 stderr 流。以下是解決此問題的修訂後的程式碼:
現在,程式碼從 stderr 管道讀取並列印它接收到的單字。這確保我們捕獲並顯示 ffmpeg 產生的診斷訊息。
例如,如果ffmpeg 的進度條如下所示:
我們的程式碼將逐行擷取並列印這些單字line:
然後您可以使用這些單字來解析相關資訊並相應地更新您的進度。
以上是如何在 Golang 中捕獲並列印 Shell 命令標準錯誤的即時輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!