首頁 >後端開發 >Golang >如何在 Go 中擷取 Shell 指令的即時輸出?

如何在 Go 中擷取 Shell 指令的即時輸出?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-11 02:56:09261瀏覽

How to Retrieve Realtime Output from Shell Commands in Go?

從Go 中的Shell 指令擷取即時輸出

問題:

問題:

你要

你想要執行Go 中的shell命令可能需要時間並檢索其實時輸出以進行處理並顯示為進度

解決方案:

1.使用os/exec 執行Shell 命令:

使用exec.Command 建立指令來執行所需的shell 指令。

2.捕獲標準錯誤 (stderr) 輸出:

預設情況下,來自 shell 命令的診斷訊息將發送到 stderr 而不是 stdout。使用 cmd.StderrPipe() 捕捉 stderr 流。

3.建立一個掃描器來讀取輸出:

使用 bufio.NewScanner 建立一個讀取 stderr 流的掃描器。使用 bufio.ScanWords 將掃描拆分為單字以獲得單獨的輸出行。

4.處理與顯示輸出:

在循環內,使用scanner.Scan() 方法擷取每個輸出行。對其進行處理以提取所需的信息,例如進度比。然後,顯示處理後的輸出。

5.範例程式碼:

以下範例程式碼示範如何執行此動作:透過執行下列步驟,您可以擷取shell 命令和進程的即時輸出它用於顯示進度資訊或任何其他所需資訊。

以上是如何在 Go 中擷取 Shell 指令的即時輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn