串流指令輸出進度
在執行指令的過程中,經常需要將輸出串流傳輸到指定的輸出位置並即時日誌檔。但是,在處理冗長的過程時,cmd.StdoutPipe 方法僅以字串形式提供最終結果。本文深入研究了在命令執行過程中啟用部分輸出流的方法。
問題中提供的範例利用 bufio.NewScanner 透過管線讀取標準輸出。一個常見的誤解是它是逐行讀取的。實際上,它透過 bufio.ScanLines 函數定義的換行符讀取輸入。如果執行的命令不產生換行符,則不會立即傳回輸出。
解決方法:
要克服此限制,請考慮替代方法:
讀取標準輸出和錯誤至關重要,以防止子進程中由於以下原因而潛在的阻塞:完整的緩衝區。預設情況下,子程序的標準輸出和錯誤流將被丟棄。但是,如果不讀取標準錯誤流,可能會出現錯誤訊息遺失的情況。
以上是如何在執行過程中即時串流部分命令輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!