Unix和tee - 命令链

Mik*_*ike 5 unix shell tee

在Unix环境中,我想tee在一系列命令上使用,如下所示:

$ echo 1; echo 2 | tee file
1
2

$ cat file
2
Run Code Online (Sandbox Code Playgroud)

为什么file最终只有最终命令的输出?

出于本讨论的目的,我们假设我不能将它们分开并单独运行命令.

Whi*_*ind 5

它只有第二个命令的输出,因为分号表示shell的新语句.

把它们放在括号中:

(echo 1; echo 2) | tee file
Run Code Online (Sandbox Code Playgroud)


Ste*_*ski 4

尝试:

 ( echo 1; echo 2 ) | tee file
Run Code Online (Sandbox Code Playgroud)

如果没有括号,它会被解析为:

 echo 1 ; ( echo 2 | tee file )
Run Code Online (Sandbox Code Playgroud)