首頁 >後端開發 >Golang >如何在 Go 中自動執行使用者輸入外部命令?

如何在 Go 中自動執行使用者輸入外部命令?

DDD
DDD原創
2024-10-29 17:48:02902瀏覽

 How to Automate User Input for External Commands in Go?

在 Go 中處理外部命令的使用者輸入

執行需要使用者輸入的外部命令時,有效地自動化此過程可能具有挑戰性。考慮以下場景,其中外部命令等待使用者名稱和密碼的輸入。

使用使用者輸入填充多個欄位

此問題的關鍵在於向命令的標準輸入中的多個欄位提供輸入。一種方法是使用位元組緩衝區:

login := exec.Command(cmd, "login")

var b bytes.Buffer
b.Write([]byte(username + "\n" + pwd + "\n"))

login.Stdout = os.Stdout
login.Stdin = &b
login.Stderr = os.Stderr

這裡,建立一個位元組緩衝區 b 並填滿使用者名稱和密碼的原始輸入值,並用換行符號分隔。然後登入指令的 Stdin 欄位連結到緩衝區。這可確保外部命令在執行時從預先填入的緩衝區中讀取輸入。

使用輸入緩衝區

輸入緩衝區可以透過依序儲存資料來處理多行。當該命令讀取輸入時,它會逐個字元地遍歷緩衝區,將換行符視為字段分隔符號。這允許將多個輸入自動輸入到命令的標準輸入中。

結論

透過利用位元組緩衝區並將其設定為外部命令的標準輸入,您可以有效地從在您的程式中,無需手動輸入或複雜的輸入流處理。此方法提供了一種自動輸入外部命令的便捷方法,從而簡化了程式碼庫並改進了程式流程。

以上是如何在 Go 中自動執行使用者輸入外部命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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