Предположим, что читаемый файл — test.txt в текущем каталоге, со следующим содержимым:

Google 
Example
Taobao

Пример 1

#!/bin/bash

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

Результат вывода выполнения:

Google
Example
Taobao

Пример 2

#!/bin/bash

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

Результат вывода выполнения:

Google
Example
Taobao

Пример 3

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

Результат вывода выполнения:

Google
Example
Taobao

Существует разница между построчным чтением с помощью for и построчным чтением с помощью while, например:

$ cat test.txt
Google
Пример
Taobao

$ cat test.txt | while read line; do echo $line; done
Google
Пример
Taobao


$ for line in $(<test.txt); do echo $line; done
Google
Пример
Taobao