使用while循环一次读取文件的一行,直到文件尾部格式如下:
while read line; do \\ line 为一个变量,表示读取到一行的字符 循环体 done < /path/to/somefile
使用read由标准输入读取数据,放入变量line中,如果读到的数据非空,就进入循环。
示例:
取得/etc/passwd的用户名及shell
#!/bin/bash # IFS=':' ## 改变字段分隔符 while read f1 f2 f3 f4 f5 f6 f7 ## 将读取的各行帐号放入f1-9的变量中 do echo "userName: $f1 ;userShell: $f7" ## 输出变量 done < /etc/passwd
或可以通过管道传给{}的指令组如下所示
#!/bin/bash # IFS=':' ## 改变字段分隔符 cat /etc/passwd | { while read f1 f2 f3 f4 f5 f6 f7 ## 将读取的各行帐号放入f1-9的变量中 do echo "userName: $f1 ;userShell: $f7" ## 输出变量 done }
练习: