A partir da página de leitura:
Reads a single line from the standard input, or from file descriptor FD if the -u option is supplied. The line is split into fields as with word splitting, and the first word is assigned to the first NAME, the second word to the second NAME, and so on, with any leftover words assigned to the last NAME. Only the characters found in $IFS are recognized as word delimiters.
Por esse motivo, geralmente uso uma variável "lixeira" para coletar qualquer coisa que possa ser usada:
echo '1 2 3 4 5 6' | while read a b c TRASH; do
echo "result is: $c $b $a"
echo "trash is: $TRASH"
done
Em uso:
$ echo '1 2 3 4 5 6' | while read a b c TRASH; do
> echo "result is: $c $b $a"
> echo "trash is: $TRASH"
> done
result is: 3 2 1
trash is: 4 5 6