Go の外部コマンドに複数の入力フィールドをプログラム的に提供するにはどうすればよいですか?
Go での外部コマンドの STDIN への書き込み
Go では、外部コマンドを実行するときに、STDIN 経由で入力を提供する必要があることがよくあります。この記事では、複数の入力フィールドを必要とするコマンドを処理するときに入力を STDIN に書き込む手法について説明します。
「login」コマンドのように、ユーザー名とパスワードを順番に入力するコマンドを考えてみましょう。これらの入力をプログラムで提供するには、コマンドの STDIN に書き込む必要があります。
最初のアプローチは、次のコードに示すように、入力フィールドを手動で処理することでした。
<code class="go">login := exec.Command(cmd, "login") login.Stdout = os.Stdout login.Stdin = os.Stdin login.Stderr = os.Stderr err := login.Run() if err != nil { fmt.Fprintln(os.Stderr, err) }</code>
ただし, この方法ではプログラムによる入力はできません。解決策は、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</code>
bytes.Buffer は文字バッファーとして機能します。ユーザー名とパスワードを改行文字で区切って記述することで、基本的には外部コマンドが順番に読み取る一連の入力を構築します。コマンドの Stdin フィールドにはバッファが割り当てられ、入力がコマンドのプロセスに確実に供給されるようにします。
このアプローチにより、複数の入力フィールドを持つ外部コマンドへの自動入力が可能になり、Go と他のコマンド間の対話が簡素化されます。ラインツール。
以上がGo の外部コマンドに複数の入力フィールドをプログラム的に提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?
