如何显示输出命令并将其通过管道传递给下一个命令?

LMJ*_*LMJ 5 bash io-redirection tee

我想显示输出(STDOUT)并通过管道传输到下一个命令。我知道“tee”可以显示结果并写入文件,但要写入文件,我想通过管道传输到另一个命令。

例子 :

$ command1 --option1 --option2 | MAGICCOMMAND | jq -e '.returnCode'
Run Code Online (Sandbox Code Playgroud)

我会有“command1 --option1 --option2”和“jq -e ...”的输出

Kus*_*nda 7

bashshell 中,您可以使用tee如下的进程替换:

command1 --option1 --option2 | tee >( jq -e '.returnCode' )
Run Code Online (Sandbox Code Playgroud)

command1这会将to的输出写入tee,这会将其复制到标准输出以及 的标准输入jq

你也可以这样做

command1 --option1 --option2 | tee /dev/stderr | jq -e '.returnCode'
Run Code Online (Sandbox Code Playgroud)

它将把 的输出放到标准错误流command1上,同时将其重复的输出通过管道传输到. 这取决于您想要实现的目标。jq