我经常看到这样的命令:什么时候可以在Bash中使用|&?它可用于其他shell吗?
command1 |& command2
所以我们在这里做的是标准错误重定向到标准输入,让他们都“成为”标准输入到管道中的下一个元素。
或者更好在Bash Reference manual -> Pipelines描述:
管道是由 控制操作中的一个分隔简单命令的序列“|”或“| &'。
...
如果使用
|&
,命令1的标准错误,除了其 标准输出,被连接到通过所述管 命令2的标准输入;它是2>&1 |
的简写。标准输出的标准错误 的这种隐式重定向是在命令指定的任何 重定向之后执行的。
不过,我想知道:是这样的语法使用在所有的Bash版本?也就是说,它总是可以与2>&1 |
互换吗?它是否也可以用于任何其他shell(ksh,csh ...)?
你的标题,并最终你会问这个问题似乎是TBH两个不同的问题给我。我建议编辑标题 – MohitC
@MohitChandak你是对的。我从标题开始,然后调查了这个话题。在我整理出一些东西的时候,还提出了其他问题。将编辑它,谢谢。 – fedorqui
如果你想知道什么是可用的其他shell,你最好试用posix模式的shell,因为标准是唯一的方法来保证一件事肯定会在另一个系统中工作 – HuStmpHrrr