输入文件:
$ 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