发布于 2015-03-11 16:31:24
在这种情况下,我相信> >(tee -a _testoutput.txt)和| tee -a _testoutput.txt的行为是一样的。
标准误差版本显然是必要的,因为没有标准的错误管道。
管道版本和https://en.wikipedia.org/wiki/Process_substitution (>(...))版本的另一个主要区别是子subshell的发生位置。
例如,如果>(...)处于整个循环中,并且需要在循环中设置变量以在循环之外持久存在,则不能使用管道版本(有关这方面的更多信息,请参见Bash FAQ 24 )。
另外一个不同之处(正确地说是查尔斯·达菲指出 )是,管道会影响管道的退出状态(默认情况下,您将获得管道中最终命令的退出状态,尽管set -o pipefail更改了这些状态,而Bash PIPESTATUS数组保存了所有退出状态)。另一方面,进程替换不影响退出状态。
发布于 2015-03-11 16:32:13
>( list )被称为“进程替换”。它比普通管道更强大:您不能这么容易地使用|将标准输出和标准错误重定向到不同的程序。
https://stackoverflow.com/questions/28992111
复制相似问题