En alguna ocasion podemos querer hacer un bucle con for obteniendo los elementos mediante un cat a un archivo. Si alguna vez hemos intentado hacer esto, nos habremos percatado de que si las lineas del archivo contienen un espacio, el cat va a insertas un espacio separando la línea en tantos elementos como palabras separadas por espacios tiene esa línea. Por ejemplo:

javi@casa:/tmp$ for i in $(cat prueba); do echo $i; done
Primera
Linea
Segunda
Linea
Tercera
Linea

Esto no es lo que esperabamos, ya que mi intención era sacar las lineas una a una, pero completas.

Para hacer un bucle de este tipo sin que se nos separen las líneas de forma que se muestre cada palabra en una diferente, debemos cambiar la aproximación y hacer el bucle de otra forma. De esta manera, podemos hacer el siguiente bucle

javi@casa:/tmp$ while read i; do echo "$i"; done < ./prueba
Primera Linea
Segunda Linea
Tercera Linea

De esta sencilla forma podremos iterar con bucles a lo largo de archivos que contienen palabras separadas por espacios sin que se nos rompan todos los esquemas y formato original del archivo y sus líneas.