tee + cat:出力を数回使用し、結果を連結します
たとえば、あるコマンドを呼び出すとecho、そのコマンドの結果を他のいくつかのコマンドで使用できますtee。例: echo "Hello world!" | tee >(command1) >(command2) >(command3) catを使用すると、いくつかのコマンドの結果を収集できます。例: cat <(command1) <(command2) <(command3) 私は両方のことを同時に行うことができるようにしたいのでtee、何か他の出力(たとえばecho私が書いたもの)でそれらのコマンドを呼び出してから、単一の出力ですべての結果を収集することができますcat。 それは、その結果を順に維持することが重要です。この手段の出力のラインcommand1、command2およびcommand3絡み合っが、(それがで起こるようにコマンドがあるとして注文するべきではありませんcat)。 そこよりも良い選択肢かもしれcatとteeが、それらは私がこれまで知っているものです。 入力と出力のサイズが大きくなる可能性があるため、一時ファイルの使用を避けたい。 どうすればこれができますか? PD:別の問題は、これがループで発生し、一時ファイルの処理が難しくなることです。これは私が持っている現在のコードであり、小さなテストケースで動作しますが、私が理解できない何らかの方法でauxfileから読み書きするときに無限ループを作成します。 somefunction() { if [ $1 -eq 1 ] then echo "Hello world!" else somefunction $(( $1 - 1 )) > auxfile cat <(command1 < auxfile) \ <(command2 < auxfile) \ …