使用while循环一次读取文件的一行,直到文件尾部格式如下:while read line; do \\ line 为一个变量,表示读取到一行的字符
循环体
done
使用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
或可以通过管道传给{}的指令组如下所示#!/bin/bash
#
IFS=':' ## 改变字段分隔符
cat /etc/passwd | {
while read f1 f2 f3 f4 f5 f6 f7 ## 将读取的各行帐号放入f1-9的变量中
do
echo "userName: $f1 ;userShell: $f7" ## 输出变量
done
}
练习:
1、取出当前系统上,默认shell为bash的用户#!/bin/bash
#
while read line;do
if [[ `echo $line | cut -d: -f7` =~ bash$ ]];then
<