管道
管道应该是等左边的程序执行完,才使用左边的程序的输出执行右边的程序。
但是在测试的时候,如果左边的程序无限循环且不等待的输出,那么左边的程序执行时右边的程序也会执行,个人感觉这是linux的机制,因为缓冲区溢出了所以不得不启动右边的程序来使缓冲区空出来。
管道和重定向的区别
1.
左边的命令应该有标准输出|右边的命令应该有标准输入
左边的命令应该有标准输出>右边只能是文件
左边的命令应该有标准输入<左边只能是文件
2.
管道触发两个子进程执行“|”两边的程序
重定向是在一个进程内执行的。