流水线如何与 2>&1 一起工作?

Kam*_*ila 1 shell pipe

刚开始学习 UNIX,所以这个问题可能看起来真的很新手,但希望得到答案,因为我一直在尝试在谷歌的帮助下自己解决一个小时,但没有成功。

cat /etc/shadow 2>&1 | wc -l
Run Code Online (Sandbox Code Playgroud)

这个命令的作用是什么?我的猜测是:

  1. 该命令打印“/etc/shadow”的行数,如果有标准错误,将重定向到标准输出并计算错误行数。
  2. 该命令打印“/etc/shadow”的文件,如果有标准错误,它会被重定向到标准输出并计算错误的行数。

小智 5

X>&Y文件描述符重定向:这意味着,所有的输出到FDX真正进入Y2>&1将 STDERR 的输出抛出到 STDOUT。


wc -l 将输入行数写入 STDOUT。


一起,该命令cat /etc/shadow 2>&1 | wc -l返回的行数/etc/shadow以及错误行数。

如果你希望这些计数错误行,只需使用cat /etc/shadow | wc -l