
実行時にユーザー入力を要求するUnixバイナリがあります。このバイナリへの入力は手動で提供されます。入力内容を既に知っているので、プロセスを自動化したいと思います。バイナリファイルを変更できません。どうすればいいですか?ant
シェルスクリプトまたはターゲットを介してこれを達成できますか?
答え1
プログラムが(ターミナルから直接読み取るのではなく)標準入力から読み取る場合は、次のようにすることができます。
echo -e "answer1\nanswer2\nanswer3\n" | your_program
ㅏここのドキュメントおそらくもっと読みやすくなります。
your_program <<'EOF'
answer1
answer2
answer3
EOF
do_more_stuff
(代わりに任意の文字列を選択できますEOF
。ただし、<<'somestring'
同じ文字列を使用して入力の終わりを表示する必要があります。文字列は入力行で表示しないでください。入力マーカーの末尾はインデントしないでください。)
より複雑な対話が必要な場合は、expect
スクリプトをお勧めします。
答え2
入力が多い場合は、入力をファイルに入れることもできます。
in.txt:
input1
input2
...
intputn
次のようにバイナリを呼び出します。
binary < in.txt