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

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

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/04/14 22:17:16
  • 終了:2010/04/15 14:14:23

ベストアンサー

id:mjy No.1

mjy回答回数67ベストアンサー獲得回数202010/04/14 23:33:20

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません