Angenommen, die zu lesende Datei ist test.txt im aktuellen Verzeichnis und hat folgenden Inhalt:
Google Example Taobao
Beispiel 1
#!/bin/bash
while read line
do
echo $line
done < test.txt
while read line
do
echo $line
done < test.txt
Ergebnis der Ausführung:
Google Example Taobao
Beispiel 2
#!/bin/bash
cat test.txt | while read line
do
echo $line
done
cat test.txt | while read line
do
echo $line
done
Ergebnis der Ausführung:
Google Example Taobao
Beispiel 3
for line in `cat test.txt`
do
echo $line
done
do
echo $line
done
Ergebnis der Ausführung:
Google Example Taobao
Es gibt einen Unterschied zwischen dem zeilenweisen Lesen mit for und dem zeilenweisen Lesen mit while, zum Beispiel:
$ cat test.txt
Google
Beispiel
Taobao
$ cat test.txt | while read line; do echo $line; done
Google
Beispiel
Taobao
$ for line in $(<test.txt); do echo $line; done
Google
Beispiel
Taobao
Beispiel
Taobao
$ cat test.txt | while read line; do echo $line; done
Beispiel
Taobao
$ for line in $(<test.txt); do echo $line; done
Beispiel
Taobao