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`选项用于防止反斜杠字符的特殊处理。