管道与重定向区别

1. 左边的命令应该有标准输出 | 右边的命令应该接受标准输入
   左边的命令应该有标准输出 > 右边只能是文件
   左边的命令应该需要标准输入 < 右边只能是文件

2. 管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行。
3. (摘自<高级 Bash 脚本编程指南>):
   作为子进程的运行的管道,不能够改变脚本的变量.
   1) variable="initial_value"
   2) echo "new_value" | read variable
   3) echo "variable = $variable" #variable = initial_value
4. 使用重定向,数组的元素得以输出。使用管道,数组的元素为空。

猜你喜欢

转载自liliangjie.iteye.com/blog/832406