質問: Linuxで、ある端末で起動している対話型コマンドに対して、別の端末からコマンドを連続して引き渡す方法を教えてください。 ためしにmkfifoで作成した名前付きパイプ /tmp/named_pipeを使って <対話型コマンド> < /tmp/named_pipe として、echo "1つ目のコマンド" > /tmp/named_pipeを実行したところ、1つ目のコマンドの実行しかできませんでした。
回答: echo コマンドの終了時に、名前付きパイプに EOF が来るのではないでしょうか。 一度の echo で複数行を送るのが簡単だと思います。 ``` echo -e "1つ目のコマンド\n2つ目のコマンド" >/tmp/named_pipe ``` あるいは、「対話型コマンド」に直接 名前付きパイプ を読ませるのはやめる。たとえば下記のように cat で繰り返し 名前付きパイプ を読ませ、それを「対話型コマンド」に送るというのはどうでしょう。 ``` while cat