bash の while read で末尾に改行文字がないと読み込まれない

ちょっとだけ嵌った内容です。末尾に改行があるかないかで挙動が変わる事象に遭遇しました。 中身は別になんでもよいのですが、遭遇したときのテキストファイルがいわゆる TIMECARD 形式だったので、そのまま例として示します。後者の TIMECARD2.LIST には末尾に改行があるテキストです。

$ cat TIMECARD1.LIST
2022 07 01 00 00
$ cat TIMECARD2.LIST
2022 07 02 00 00

このテキストに対して、以下のようなシェルスクリプトで中身を1行ずつ読み echo で標準出力させるのですが、末尾に改行がない TIMECARD1.LIST のデータは表示されず、TIMECARD2.LIST の方が意図通りの結果になります。という、ただそれだけの報告です。 なお、軽くWeb検索すると、read コマンドは改行文字を区切り文字として扱うので、最終行に改行文字が付いていないと、最終行が処理されない、ということらしいです。

$ cat main.sh
#!/bin/bash
set -e

cat TIMECARD1.LIST | while read LINE ; do
    echo ${LINE:?}
done

cat TIMECARD2.LIST | while read LINE ; do
    echo ${LINE:?}
done

exit 0
$ bash main.sh
2022 07 02 00 00