ホームページ > バックエンド開発 > Golang > Go で外部コマンドのユーザー入力を自動化するにはどうすればよいですか?

Go で外部コマンドのユーザー入力を自動化するにはどうすればよいですか?

DDD
リリース: 2024-10-29 17:48:02
オリジナル
928 人が閲覧しました

 How to Automate User Input for External Commands in Go?

Go での外部コマンドのユーザー入力の処理

ユーザー入力が必要な外部コマンドを実行する場合、このプロセスを効果的に自動化するのは難しい場合があります。外部コマンドがユーザー名とパスワードの入力を待つ次のシナリオを考えてみましょう。

複数のフィールドにユーザー入力を入力する

この問題の核心は、コマンドの標準入力の複数のフィールドに入力を提供することにあります。 1 つのアプローチは、バイト バッファーを使用することです。

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 フィールドがバッファにリンクされます。これにより、外部コマンドは実行時に事前設定されたバッファから入力を読み取ることが保証されます。

入力バッファの操作

入力バッファは、データを順番に保存することで複数の行を処理できます。コマンドは入力を読み取ると、改行文字をフィールド区切り文字として扱い、バッファーを 1 文字ずつ反復処理します。これにより、コマンドの stdin への複数の入力の自動入力が可能になります。

結論

バイト バッファを利用し、それを外部コマンドの Stdin として設定することで、複数の値を効率的に入力できます。プログラム内で実行できるため、手動入力や入力ストリームの複雑な処理が不要になります。この方法は、外部コマンドの入力を自動化し、コードベースを簡素化し、プログラム フローを改善する便利な方法を提供します。

以上がGo で外部コマンドのユーザー入力を自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート