bash读取时,循环以作为线路终止失败



输入文件:

$ cat list 
dog 
cat 
apple 

脚本:

while read line;do echo $line;done < list;

问题:上面的脚本什么也没打印。而使用"读取-r"代替读取打印所有行。

我的问题是..

在上述情况下(没有-r)并打印第一行输出行不应该至少运行一次?为什么条件检查在第一行本身上失败?

由于所有新线都被逃脱了,并且read读取直到一个未排列的新线,它将达到文件终止,而无需获得。而且,正如help read所说:

退出状态:返回代码为零,除非遇到文件结束,否则请阅读时间(在这种情况下,它大于128),发生可变分配误差,或将无效的文件描述符作为参数提供给-u。

请注意,line仍然包含到目前为止读取的行:

$ while read line; do echo "$line"; done < foo; echo $line
dog cat apple

相关内容

  • 没有找到相关文章

最新更新