请教一个关于while循环的问题。

请教一个关于while循环的问题。

例如有文件name.txt内容为
abc
def
ghi

文件 whileread 内容为

#!/bin/bash
#whileread
while read LINE
do
    echo $LINE
done < name.txt

此时,脚本会将name.txt里的内容循环打印出来,但是如果将其改成

#!/bin/bash
#whileread
while read LINE < name.txt
do
    echo $LINE
done

则是死循环,为何?为何写在最后就是成功读取?第一个脚本不是先执行到read LINE 吗?不应该先等待一个输入吗?
没有认肯出来回答吗?
定义个函数  然后递归调用
为何需要递归,可以再说得详细一点吗?