追问
- read - i 的意思是从 3 号 (file descriptor,文件描述符) 中读一行数据到 i 变量中, 同理你明白 read -u4 j 的意思
- 而 3
- 所以,整个代码
- while read - i && read -u4 j;do
- echo $i $j
- done 3
- 的意思是,不断从 afile 和 bfile 中分别读取内容到i , j 中,然后用
- echo 打印出来。 这个循环会一直执行直到遇到 afile 或 bfile 中至少任意一个的文件尾。
- 比方说你 afile 的内容是
- a
- b
- c
- bfile 的内容是
- 1
- 2
- 3
- 4
- 则这段程序就会打印
- a 1
- b 2
- c 3
追答
- 为什么可以写成这样3<afile ,而不是exec 3<afile,而且不写在循环的前面呢?
- 用现在的写法,相当于只对
- while语句进行重定向,
- while结束后,3,
- 4就没有了。如果在
- while前面用exec 3
- 所以对于你的代码来说,既然只在
- while中需要用afile bfile,那现在的写法就是最好的。如果想在
- while后继续访问,那么可以考虑用exec 3
来源: http://www.bubuko.com/infodetail-1973932.html