重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2517|回复: 0
打印 上一主题 下一主题

[基础命令] shell 中while read语句总结

[复制链接]
跳转到指定楼层
楼主
发表于 2017-11-26 10:24:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 郑全 于 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秒
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-25 05:42 , Processed in 0.093477 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表