Skip to content
Grische edited this page Jul 30, 2025 · 2 revisions

In POSIX sh, read without a variable is undefined.

Problematic code:

while read -r;
do
    echo "line: ${REPLY}"
done < foolist

Correct code:

Add a variable to read and use it later on:

while read -r foo;
do
    echo "line: ${foo}"
done < foolist

Rationale:

This behavior is not allowed in POSIX.

Exceptions:

None. This warning is not emitted in ksh or bash where read can be used without an argument.

Clone this wiki locally