人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxで、ある端末で起動している対話型コマンドに対して、別の端末からコマンドを連続して引き渡す方法を教えてください。
ためしにmkfifoで作成した名前付きパイプ /tmp/named_pipeを使って
<対話型コマンド> < /tmp/named_pipe として、echo "1つ目のコマンド" > /tmp/named_pipeを実行したところ、1つ目のコマンドの実行しかできませんでした。

●質問者: my_redo_log
●カテゴリ:コンピュータ インターネット
✍キーワード:Linux コマンド パイプ 作成 名前
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● mjy
●60ポイント ベストアンサー

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

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

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

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

while cat </tmp/named_pipe1; do continue; done |対話型コマンド
◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ