透過stdin 將使用者憑證輸入外部程式
考慮以下場景:您希望執行外部命令並從內部提供使用者憑證去編程吧。此命令提示在單獨的欄位中輸入使用者名稱和密碼。確定如何使用 stdin 順序填充這些欄位可能是一個挑戰。
解決方案:利用bytes.Buffer
要解決此問題,請利用bytes.Buffer 類型,它可以建立用於寫入和讀取位元組資料的緩衝區。請依照以下步驟操作:
範例程式碼:
<code class="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 err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) }</code>
這種方法利用了 stdin 讀取字元直到遇到字元的事實換行符。透過將緩衝區提供給標準輸入,該命令將按順序讀取憑證,而不會遇到任何歧義。
以上是如何在 Go 中透過 Stdin 將使用者憑證輸入到外部程式中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!