他のコマンドのパイプを使用してstderrをstdoutに送信する方法は?

他のコマンドのパイプを使用してstderrをstdoutに送信する方法は?

ビルドジョブのすべての出力をキャプチャして送信しようとしますmyprogram。一部しかキャプチャできないようです。これが私が試していることです:

make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" | myprogram &2 > 1

私も次のことを試しました。

make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" &2 > 1 | myprogram

stdout基本的に私はすべてを送り、それで何かをしたいと思います。現在は出力の一部だけをキャプチャし、残りの部分は画面に表示されます。すべてを他のプログラムにどのように転送しますか?

ベストアンサー1

2つのコマンドがあるので、次のようにすることをお勧めします。

{ make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64"; } 2>&1 | myprogram

または

( make clean && make DISABLE_ID3TAG=1 CFLAGS="-O2 -DNDEBUG -W64" ) 2>&1 | myprogram

出力がパイプに渡されない場合は、シェルが両方の呼び出しの出力を1つにリダイレクトするように上記のmake clean2つのいずれかを使用する必要があります。make

おすすめ記事