while read -r line; do
这是一个在bash shell脚本中常见的结构,用于逐行读取文件的内容。
代码解释:
1. `while`: 这是一个循环结构,它会持续执行其下的命令块,直到某个条件不再满足。
2. `read -r line`: 这是`read`命令,用于从标准输入读取数据。
* `-r`: 这个选项告诉`read`命令不要解释反斜杠(`\`)为转义字符。
* `line`: 这是一个变量,用于存储从标准输入读取的每一行的内容。
3. `do ... done`: 这两个关键字标记了`while`循环的主体部分。所有在这两个关键字之间的命令都会在每次循环迭代时执行。
一个简单的例子:
假设我们有一个名为`example.txt`的文件,内容如下:
apple
banana
cherry
如果我们想逐行读取这个文件并打印每一行的内容,我们可以使用以下脚本:
#!/bin/bash
while read -r line; do
echo "$line"
done < "example.txt"
执行这个脚本,输出将是:
apple
banana
cherry
在上面的脚本中,`< "example.txt"`将`example.txt`文件的内容重定向到`while`循环的标准输入。然后,`read -r line`从标准输入读取一行内容,并将其存储在`line`变量中。接着,`echo "$line"`打印出这一行的内容。当`example.txt`中的所有行都被读取后,`while`循环结束。