虽然循环正在跳过Unix Shell脚本中的最后记录

时间:2015-12-01 11:23:44

标签: shell unix

在Unix shell中使用while循环读取文件。代码如下。

while IFS=, read V1 V2
#Statement
done<$FILE

如果$ FILE包含N条记录,则while循环从文件中读取N-1条记录。

请提出解决方案。

1 个答案:

答案 0 :(得分:0)

如果最后一行没有换行符(默认read终结符),那么它将返回最后一行的false,循环将终止。处理此问题的常用方法是使用IFS=, read V1 V2 || [ -n "$V1" ]作为while循环条件...或者只是确保您的文件是“有效”文件并包含最终换行符。 (另请使用read -r,除非您知道您希望read解释反斜杠转义,并且您几乎肯定想要这样做。)                      - Etan Reisner