Bucles con while en vez de for

El uso de bucles utilizando for es muy habitual en el shell scripting.

A continuación se enseña un ejemplo donde devolvemos por pantalla cada línea del fichero "/tmp/file.lst".

for N in `cat /tmp/file.lst`;do
echo $N
done


El problema de utilizar for es que separa cada elemento del siguiente por un espacio en blanco, tabulador, salto de linea, etc. Si en cada línea del fichero "file.lst" hubiera un espacio en blanco (entre caracteres por ejempo) el script devolvería una palabra por línea. Esto es un problema cuando queremos listar líneas enteras. La solución es utilizar "while" en vez de "for":

cat /tmp/file.lst | while read N;do
echo $N
done