Предположим, что читаемый файл — test.txt в текущем каталоге, со следующим содержимым:
Google Example Taobao
Пример 1
#!/bin/bash
while read line
do
echo $line
done < test.txt
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
cat test.txt | while read line
do
echo $line
done
Результат вывода выполнения:
Google Example Taobao
Пример 3
for line in `cat test.txt`
do
echo $line
done
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
Пример
Taobao
$ cat test.txt | while read line; do echo $line; done
Пример
Taobao
$ for line in $(<test.txt); do echo $line; done
Пример
Taobao