曾经意外地发现象 cat < file 这样的命令写成 < file cat 也是同样的效果,仔细思量,重定向的动作是发生在shell真正执行命令之前的,这样才能让要执行的命令的执行环境继承这个文件描述符.
在解决
cat file | while read i; do echo $i ; done
用来将一整行内容赋给一个变量时,顺手去演示用重定向也可达到同样效果
while read i; do echo $i ; done < file
进而
< file while read i; do echo $i ; done
时,却发现bash执行语法错误了.看来命令行上重定向的语法成份并不是可以随意放置的.
阅读(988) | 评论(0) | 转发(0) |