5

在 Unix 环境中,我想使用tee如下命令链:

$ echo 1; echo 2 | tee file
1
2

$ cat file
2

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

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

4

2 回答 2

5

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

只需将它们放在括号中:

(echo 1; echo 2) | tee file
于 2010-05-17T18:56:13.540 回答
4

尝试:

 ( echo 1; echo 2 ) | tee file

没有括号,它被解析为:

 echo 1 ; ( echo 2 | tee file )
于 2010-05-17T18:58:59.330 回答