Linuxで、ある端末で起動している対話型コマンドに対して、別の端末からコマンドを連続して引き渡す方法を教えてください。

ためしにmkfifoで作成した名前付きパイプ /tmp/named_pipeを使って
<対話型コマンド> < /tmp/named_pipe として、echo "1つ目のコマンド" > /tmp/named_pipeを実行したところ、1つ目のコマンドの実行しかできませんでした。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/04/15 14:14:23
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:mjy No.1

回答回数70ベストアンサー獲得回数22

ポイント60pt

echo コマンドの終了時に、名前付きパイプに EOF が来るのではないでしょうか。

一度の echo で複数行を送るのが簡単だと思います。

echo -e "1つ目のコマンド\n2つ目のコマンド" >/tmp/named_pipe

あるいは、「対話型コマンド」に直接 名前付きパイプ を読ませるのはやめる。たとえば下記のように cat で繰り返し 名前付きパイプ を読ませ、それを「対話型コマンド」に送るというのはどうでしょう。

while cat </tmp/named_pipe1; do continue; done |対話型コマンド
id:my_redo_log

ありがとうございます!いけました!

2010/04/15 14:14:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません