管道后面 | 与 |&的区别

$ cat tt.txt cat: tt.txt: No such file or directory
$ cat tt.txt 2>/dev/null|grep  "No such file or directory" $ cat tt.txt 2>/dev/null|& grep  "No such file or directory" cat: tt.txt: No such file or directory

第一个命令返回错误,因为文件不存在(命令的  stderr 输出)。
第二个命令不返回任何输出,因为 cat 命令的 stderr 是重定向 /dev/null,所以 grep 命令不会通过管道获取 cat 命令的 stderr。
第三个命令返回输出,即使 cat 命令的 stderr 被重定向到 /dev/null 因为带有&符号 (|&) 的管道。 它将command1的stdout和stderr连接到command2的stdin; 在命令指定的任何重定向之后执行标准错误的隐式重定向。

管道后面 | 与 |&的区别最先出现在Python成神之路

版权声明:
作者:dingding
链接:https://www.techfm.club/p/4224.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>