shell 中的 pipe '|'

各位好:

关于这个shell中的PIPE我有一个问题:所有的书中都说PIPE是把一个command的std output 重定向到另一个command 的std input,为什么说是std input? 如果说是把一个command的的std output重定向到另一个command的 input我理解起来没有问题,std input不是指的键盘吗?

谢谢!

阅读 3.9k
3 个回答

对比一下下面的几个命令,不知道是否对你有帮助

wc -l -  # 敲一段东西,然后ctrl+D结束
cat a.txt | wc -l -  # 把敲的东西放在a.txt里面
wc -l a.txt  # 把敲的东西放在a.txt里面

input outpu指输入 输出
程序可以接受从键盘的输入,也可以接受其他程序的输入
| 就是把程序的输出输入到另一个程序中

在 linux 中,everything is a file. 所以标准输入输出可以分别看作是一个特殊的文件。默认情况下,标准输入连接到键盘,标准输出连接到屏幕,但均可以重新定向到别的文件。所以我认为 PIPE不仅仅是重定向了前一个命令的标准输出,而且重定向了后一个命令的标准输入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题