【发布时间】:2020-10-21 10:29:05
【问题描述】:
我刚开始学习 shell,对读取行(变量)命令如何读取文件感到困惑
done < filename.
代码:
while read LINE; do
echo "This is a downvote"
done < inputfile
我的假设是当 while 运行行变量为空并且它应该是 false 并且 while 循环退出但它没有。 read 是否检查循环中的文件,并且我知道输入重定向命令已传递给文件。有人可以解释一下它是如何分步工作的。
【问题讨论】:
-
重定向发生在其他任何事情之前,因此
<标志打开文件inputfile进行读取,然后while循环循环遍历文件的行,具体取决于有多少行echo this is a downvote的数量的文件将执行,即使您不使用LINE变量做任何事情。所以read -r LINE < file只需读取该文件的第一行并将其保存在变量LINE中,就像head -n1唯一的区别是您需要打印出变量$LINE的值,例如echo "$LINE", -
1.redirection 2.来自输入文件的值存储在第 3 行。echo "...." 这是怎么回事?如果我错了,请纠正
-
"while" 的参数是它后面的整个命令,在本例中为 "read LINE"(以分号结尾)。请注意,该变量不表示为 $LINE(这将表示其值),而只是表示为 LINE,它只是一个单词,其含义由命令(在本例中为“读取”)确定。
标签: bash shell while-loop io-redirection