GNU/Linux >> Linux の 問題 >  >> Linux

2つのプログラム間で双方向パイプを作成する方法は?

誰もが2つのプログラム間で単方向パイプを作成する方法を知っています(バインドstdout 最初のものとstdin 2番目のものの):first | second

ただし、双方向パイプの作成方法、つまりクロスバインドstdin およびstdout 2つのプログラムの?シェルでそれを行う簡単な方法はありますか?

承認された回答:

システム上のパイプが双方向である場合(少なくともSolaris 11と一部のBSDにあるが、Linuxにはない場合):

cmd1 <&1 | cmd2 >&0

ただし、デッドロックに注意してください。

また、一部のシステムのksh93の一部のバージョンは、パイプ(|)を実装していることに注意してください。 )ソケットペアを使用する 。ソケットペアは双方向ですが、ksh93は明示的に逆方向をシャットダウンするため、上記のコマンドは、パイプ(pipe(2)によって作成された)があるシステムでもこれらのksh93では機能しません。 システムコール)は双方向です。


Linux
  1. それらを含む2つのパターン間の最初の発生を選択する方法は?

  2. 2つのタイムスタンプ間のログを抽出する方法は?

  3. 2つのリモート間でファイルをRsyncする方法は?

  1. bashで2つの日付の違いを取得するにはどうすればよいですか

  2. 2 つのインターフェース間のすべてのトラフィックをブロックする方法は?

  3. 2 回の間に作成されたファイルを削除するには?

  1. 壊れたパイプでTail-fを終了しますか?

  2. Linux – 2回の間に作成されたファイルを削除する方法は?

  3. コマンドを任意の端末にパイプする方法は?