出力(STDOUT)を表示し、それを次のコマンドにパイプしたいと思います。 「tee」は結果を表示してファイルに書き込むことを知っていますが、ファイルに書き込むには別のコマンドにパイプしたいと思います。
例:
$ command1 --option1 --option2 | MAGICCOMMAND | jq -e '.returnCode'
「command1 --option1 --option2」と「jq -e...」の出力を取得します。
答え1
bash
シェルでは、tee
次のようにプロセス置換を使用できます。
command1 --option1 --option2 | tee >( jq -e '.returnCode' )
command1
これにより、出力がに書き込まれ、tee
標準入力だけでなく標準出力にもコピーされますjq
。
また、これを行うことができます
command1 --option1 --option2 | tee /dev/stderr | jq -e '.returnCode'
それからcommand1
出力標準エラーストリーム、繰り返し出力をに送信しながらjq
達成しようとする目標によって異なります。
答え2
| tee /dev/tty |
ほとんどのシステムでは、標準入力をコンソールに書き込むと同時に、次のコマンドに標準出力に渡します。
時には/dev/stderr
標準エラーに書き込むことを好むかもしれません。特にjqの場合はこれで十分です。
| jq 'stderr | ...'
これstderr/0
関数は入力を標準エラーに書き込みます。そしてそれを次のフィルタに渡します。ただし、オブジェクトをフォーマットするので(強調表示されずに圧縮される)、これは必要なものでもそうでない場合もあります。