使用shell逐行读取文件
逐行读取.txt文件的正确语法为:使用shell逐行读取文件,shell,loops,io-redirection,ifs,Shell,Loops,Io Redirection,Ifs,逐行读取.txt文件的正确语法为: while IFS= read -r line do echo "$line" done < input_file 当IFS=read-r行时 做 回音“$line” 完成
while IFS= read -r line
do
echo "$line"
done < input_file
当IFS=read-r行时
做
回音“$line”
完成
我不明白为什么在我们放置
时它工作得很好,这是因为的条件while
(实际上是一个命令列表)是在每次迭代中执行和评估的,包括重定向。而done
之后的重定向对于整个循环构造只发生一次
因此,在第一种情况下,read
始终读取新打开的input_文件的第一行,而在第二种情况下,它保持从同一文件描述符(stdin)读取行
其工作方式与上一节相同,但由于管道的原因,效率较低。输出流从左向右运行,而不是从右向左运行。这通常更容易理解。cat input_文件的输出被送入(管道)while循环,每一行都被读取,直到输出/文件结束。您不应推广cat的无用用途。如果要读取多个文件,则会有一个有用的用途。
while IFS= read -r line < input_file
do
echo "$line"
done
while IFS= read -r line
do
echo "$line"
done < input_file
cat input_file | while IFS= read -r line
do
echo "$line"
done