管道后面 | 与 |&的区别
$ 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成神之路。
共有 0 条评论