ちょっとだけ嵌った内容です。末尾に改行があるかないかで挙動が変わる事象に遭遇しました。 中身は別になんでもよいのですが、遭遇したときのテキストファイルがいわゆる 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