while read line 是Shell 脚本中用于逐行读取文件或命令输出内容的一种常见方式。它通常与输入重定向(<)或管道(|)一起使用,使得每行内容被依次读取并赋值给变量 line,然后在 while 循环体内对每行内容进行处理。 基本使用示例 以下是一个简单的 Shell 脚本示例,展示了如何使用 while read line: ...
可能不熟悉shell的人看到这个会有点懵,其实这是shell中while read line的一种用法: read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。 还记得while根据其后的命令退出状态来判断是否执行循环体吗?
shell脚本:while-read-line.sh #!/bin/bash #date:2024/9 #description:while read line while read line do echo $line done </root/test.txt 1. 2. 3. 4. 5. 6. 7. 8. 输出 [root@patrolagent ~]# cat test.txt 1,11,ztj1 2,22,ztj2 3,33,ztj3 4,44,ztj4 [root@patrolagent ~]#...
方法1:while循环中执行效率最高,最常用的方法。 function while_read_line_bottom(){whileread linedoecho $line done<$FILENAME } 注释:我习惯把这种方式叫做read釜底抽薪,因为这种方式在结束的时候需要执行文件,就好像是执行完的时候再把文件读进去一样。 方法2 : 重定向法;管道法: cat $FILENAME | while...
在Linux shell编程中,我们经常需要以行为处理单位进行数据处理。使用while read处理 read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中。read每次读取一行的数据然后就传递给变量进行处理。1、利用管道输入到read中 a=0 cat /tmp/text.txt | while read line...
cat test.txt|whileread line;doname2=$line done echo $name2 在第一种情况下输出: ENSMUSG00000000078.7 32.83699 29.78868 38.58607 30.348110000000002 第二种情况则无输出。 出现这种不同,是因为管道的机制,这个使用管道之后while read line是在子shell中进行的,所以退出之后$name2就没有值了。并且,cat 会一次...
在linux下一般用while read line与for循环按行读取文件。现有如下test.txt文件: 1. while read line while read line; do echo $line done < test.txt 1. 2. 3. 输出结果与上图一致。 这里也可以写为: cat test.txt | while read line; do ...
while循环 与for循环不同,while循环主要用于循环次数不确定的情况. while循环不会生成取值列表,所以相比for 更为高效。 还可以实现对文件进行遍历。 格式如下: while read line do 命令序列 done < 指定文件 【格式】 while条件测试命令 do 命令序列
出现这种不同,是因为管道的机制,这个使用管道之后while read line是在子shell中进行的,所以退出之后$name2就没有值了。并且,cat 会一次性地把test.txt的所有内容都输入到内存,假如文件很大,则会占用很大的内存。但是第二种重定向的方法,是一行一行的读入,更省内存。
function while_read_line_fd() { exec 3<&0 exec 0< $FILENAME while read LINE do echo $LINE done exec 0<&3 } ### 注释: 这种方法分2步骤 第一,通过将所有内容重定向到文件描述符3来关闭文件描述符0,为此我们用了语法 exec 3<&0 。 第二,将输入文件放送到文件描述符0,即标准...