2023年12月19日发(作者:)
shell中while read循环语句
在shell中,使用`while read`循环语句可以逐行读取文件或者从标准输入中逐行读取输入,并对每一行进行处理。基本语法如下:
```shell
while read line
do
commands
done <
```
上述语法中,``是要读取的文件名,可以替换为其他文件名或者使用`<`符号将标准输入重定向到循环中。
`read line`语句将文件的每一行读入变量`line`中,然后在`do`和`done`之间的代码块中对`line`进行处理。
以下是一个简单的示例,演示了如何使用`while read`循环读取文件的每一行并输出到屏幕上:
```shell
#!/bin/bash
file=""
while read line
do
echo "$line"
done < "$file"
```
在上述示例中,脚本将读取名为``的文件的每一行,并使用`echo`命令将每一行输出到屏幕上。
注意:`read`命令默认使用空格作为分隔符,所以如果文件的每一行包含空格,将会将行拆分为多个变量。如果要保留行的完整内容,可以使用`IFS=`命令将分隔符设置为空。例如:
```shell
while IFS= read -r line
do
echo "$line"
done < "$file"
```
上述示例中,`IFS=`命令将分隔符设置为空,确保每一行都被完整地读入变量`line`中。`-r`选项用于防止反斜杠字符的特殊处理。


发布评论