各位好:
关于这个shell中的PIPE我有一个问题:所有的书中都说PIPE是把一个command的std output 重定向到另一个command 的std input,为什么说是std input? 如果说是把一个command的的std output重定向到另一个command的 input我理解起来没有问题,std input不是指的键盘吗?
谢谢!
input outpu指输入 输出
程序可以接受从键盘的输入,也可以接受其他程序的输入
| 就是把程序的输出输入到另一个程序中
对比一下下面的几个命令,不知道是否对你有帮助
wc -l - # 敲一段东西,然后ctrl+D结束
cat a.txt | wc -l - # 把敲的东西放在a.txt里面
wc -l a.txt # 把敲的东西放在a.txt里面
在 linux 中,everything is a file. 所以标准输入输出可以分别看作是一个特殊的文件。默认情况下,标准输入连接到键盘,标准输出连接到屏幕,但均可以重新定向到别的文件。所以我认为 PIPE不仅仅是重定向了前一个命令的标准输出,而且重定向了后一个命令的标准输入。