私のプログラムは外部プログラムを実行 (exec..) します。実行中、外部プログラムはユーザーに [はい/いいえ] で次のステップに進むように求めます。
コマンド ラインで [yes] と入力する代わりに、自分のプログラムから外部プログラムに [Yes] を渡すにはどうすればよいですか。
私のプログラムは外部プログラムを実行 (exec..) します。実行中、外部プログラムはユーザーに [はい/いいえ] で次のステップに進むように求めます。
コマンド ラインで [yes] と入力する代わりに、自分のプログラムから外部プログラムに [Yes] を渡すにはどうすればよいですか。
コマンドラインで「yes」応答を提供する古典的な方法はオプションです(通常、「no」を示す-y
並列オプションを使用します—を参照してください)。-n
fsck(1)
プログラムの実行は「はい、私はそれを実行することを意味します」操作であるべきだと主張する余地もあります。ただし、「はい、私は本当にそれを行うことを意味します」(DBMSのインスタンスの1回限りの初期化など)を指定することが理にかなっている場合があります。
外部プログラムがそれぞれのフラグをサポートしていない限り(@Jonathan Lefflerの回答を参照)、そのプログラムのソースを制御して追加できる場合は、「はい」入力をシミュレートする必要があります。
オプション:
yes
ヘルパー アプリケーションの出力を stdin: にパイプして、外部プログラムを起動してみてくださいyes | external_program
。yes
あなたが持っていなければ、単純なツールであり、「y」を標準出力に継続的に書き込むだけです。
外部プログラムの stdin に手動で「yes」を書き込みます。
どちらのオプションでも、何らかの方法でパイプを使用する必要があります。その方法の詳細については、これを参照してください。