標準入力から読み取る必要があるCプログラムがあります。これは要件の 1 つであり、変更できません。
私は私が望むすべてのディレクトリを作成し、出力などを処理し、私のプログラムをコンパイルして実行する単純なbashスクリプトを書いた。
プログラムを実行すると、ユーザーがstdinから入力を提供するのを待ちます。
私はbashで入力を提供できるようにしたいです。したがって、(理由のため)ユーザーに入力を要求しないでください。したがって、理想的には、入力はユーザーに表示されますが、スクリプトから提供されることを願っています。
私が次のように書いた場合:
./task2
cat <<< "my input here"
ジョブを実行し、ジョブが完了したら cat コマンドを実行します。プログラムがユーザー入力を要求するたびに、何とかその猫を強制したいと思います。
可能ですか?
答え1
tee
私が正しく理解した場合は、この目的に使用できます。 Bashスクリプトで、次の行がコンパイルされたCプログラムを実行しているとします。
./my_program
次に変更してください:
printf "%s\n" "my input here" | tee /dev/tty | ./my_program
my input here
最終デバイスとして印刷されます。そして./my_program
読みやすいように標準入力にパイプします。