Assume the file to be read is test.txt in the current directory, with the following content:
Google Example Taobao
Example 1
#!/bin/bash
while read line
do
echo $line
done < test.txt
while read line
do
echo $line
done < test.txt
Execution output result:
Google Example Taobao
Example 2
#!/bin/bash
cat test.txt | while read line
do
echo $line
done
cat test.txt | while read line
do
echo $line
done
Execution output result:
Google Example Taobao
Example 3
for line in `cat test.txt`
do
echo $line
done
do
echo $line
done
Execution output result:
Google Example Taobao
There is a difference between for line-by-line reading and while line-by-line reading, for example:
$ cat test.txt
Google
Example
Taobao
$ cat test.txt | while read line; do echo $line; done
Google
Example
Taobao
$ for line in $(<test.txt); do echo $line; done
Google
Example
Taobao
Example
Taobao
$ cat test.txt | while read line; do echo $line; done
Example
Taobao
$ for line in $(<test.txt); do echo $line; done
Example
Taobao