缺少檔案中的最後一行

C 標準說檔案應該以新行結束,所以如果 EOF 出現在一行的末尾,那麼某些命令可能不會錯過該行。舉個例子:

$ echo 'one
two
three\c' > file.txt

$ cat file.txt
one
two
three

$ while read line ; do echo "line $line" ; done < file.txt
one
two

為了確保這在上面的示例中正常工作,請新增一個測試,以便在最後一行不為空時繼續迴圈。

$ while read line || [ -n "$line" ] ; do echo "line $line" ; done < file.txt
one
two
three