bash: append newline when redirecting file
Here is how I read a file row by row:

    while read ROW
    do
    ...
    done < file

I don't use the other syntax

    cat file | while read ROW
    do
    ...
    done

because the pipe creates a subshell and makes me lose the environment variables.
The problem arises if the file doesn't end with a newline: last line is not read. It is easy to solve this in the latter syntax, by echoing just a newline:

    (cat file; echo) | while read ROW
    do
    ...
    done

How do I do the same in the former syntax, without opening a subshell nor creating a temporary file (the list is quite big)?
bash: append newline when redirecting file
===

Here is how I read a file row by row:

    while read ROW
    do
    ...
    done < file

I don't use the other syntax

    cat file | while read ROW
    do
    ...
    done

because the pipe creates a subshell and makes me lose the environment variables.
The problem arises if the file doesn't end with a newline: last line is not read. It is easy to solve this in the latter syntax, by echoing just a newline:

    (cat file; echo) | while read ROW
    do
    ...
    done

How do I do the same in the former syntax, without opening a subshell nor creating a temporary file (the list is quite big)?