重庆思庄Oracle、Redhat认证学习论坛
标题: shell 中while read语句总结 [打印本页]
作者: 郑全 时间: 2017-11-26 10:24
标题: shell 中while read语句总结
本帖最后由 郑全 于 2017-11-26 10:25 编辑
read 参数使用
要求在屏幕上显示/etc/passwd里面的内容,具体要求如下
1、/etc/passwd每一行字段分7部分,中间用:隔开,要求每一部分线性一个一个显示
2、每一行只显示字段1、3、4、6、7五个字段,显示结果如下:
username=root,uid=0,gid=0,homedir=/root,shell=/bin/bash,
- #!/bin/bash
- #
- while read LINE //定义变量LINE
- do
- NUM=1
- for name in username uid gid homedir shell //定义变量name 值为后面的username,uid,gid,homedir,shell
- do
- echo -n "$name="
- echo -n $(echo $LINE | cut -d: -f$NUM) //以:分割显示
- echo -n ","
- NUM=$(( $NUM + 1 )) //第一个字段显示完变量+1
- if [ $NUM -eq 2 ] ||[ $NUM -eq 5 ];then //排除第二个和第五个字段
- NUM=$(( $NUM + 1 ))
- fi
- sleep 1 //每一行显示一个字段停顿1秒
- done
- echo //每一行显示完插上空的一行
- done </etc/passwd //将/etc/passwd内容输入到while read循环中
部分脚本分析:
cut -d: -f$num 取每一列以:分割的部分
echo –n 在同一行显示下一行内容,不进入下一行
num=$(($num+1)) 变量进行数值,每次加1
sleep 1 运行过程中停顿1秒
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) |
Powered by Discuz! X3.2 |