在Unix环境中,我想tee在一系列命令上使用,如下所示:
$ echo 1; echo 2 | tee file
1
2
$ cat file
2
Run Code Online (Sandbox Code Playgroud)
为什么file最终只有最终命令的输出?
出于本讨论的目的,我们假设我不能将它们分开并单独运行命令.
它只有第二个命令的输出,因为分号表示shell的新语句.
把它们放在括号中:
(echo 1; echo 2) | tee file
Run Code Online (Sandbox Code Playgroud)
尝试:
( echo 1; echo 2 ) | tee file
Run Code Online (Sandbox Code Playgroud)
如果没有括号,它会被解析为:
echo 1 ; ( echo 2 | tee file )
Run Code Online (Sandbox Code Playgroud)