Supongamos que el archivo a leer es test.txt en el directorio actual, con el siguiente contenido:

Google 
Ejemplo
Taobao

Ejemplo 1

#!/bin/bash

while read line
do
    echo $line
done < test.txt

El resultado de la ejecución es:

Google
Ejemplo
Taobao

Ejemplo 2

#!/bin/bash

cat test.txt | while read line
do
    echo $line
done

El resultado de la ejecución es:

Google
Ejemplo
Taobao

Ejemplo 3

for line in `cat  test.txt`
do
    echo $line
done

El resultado de la ejecución es:

Google
Ejemplo
Taobao

Hay una diferencia entre la lectura línea por línea con for y con while, como:

$ cat test.txt
Google
Ejemplo
Taobao

$ cat test.txt | while read line; do echo $line; done
Google
Ejemplo
Taobao


$ for line in $(<test.txt); do echo $line; done
Google
Ejemplo
Taobao