博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过脚本案例学习shell(二) --- 通过线性显示/etc/passwd内容了解while read用法
阅读量:5950 次
发布时间:2019-06-19

本文共 1146 字,大约阅读时间需要 3 分钟。

通过脚本案例学习shell(二)

--- 通过线性显示/etc/passwd内容了解while read用法 

版权声明:

本文遵循“署名非商业性使用相同方式共享 2.5 中国大陆”协议

您可以自由复制、发行、展览、表演、放映、广播或通过信息网络传播本作品

您可以根据本作品演义自己的作品

您必须按照作者或者许可人指定的方式对作品进行署名。

您不得将本作品用于商业目的。

如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许可协议发布基于本作品的演绎作品。

对任何再使用或者发行,您都必须向他人清楚地展示本作品使用的许可协议条款。

如果得到著作权人的许可,您可以不受任何这些条件的限制。

Designed by 小诺(www.rsyslog.org  

需求:要求在屏幕上显示/etc/passwd里面的内容,具体要求如下:

1/etc/passwd每一行字段分7部分,中间用:隔开,要求每一部分线性一个一个显示

2、每一行只显示字段13467五个字段,显示结果如下:

username=root,uid=0,gid=0,homedir=/root,shell=/bin/bash,

脚本思路分析:线性显示需要用while read语句,每一行单独显示需要用for循环,部分字段显示,需要在for循环中嵌套if语句排除不需要显示的内容。

 
  1. #!/bin/bash 
  2. while read LINE  //定义变量LINE 
  3. do 
  4.   NUM=1 
  5.         for name in  username uid gid homedir shell  //定义变量name 值为后面的username,uid,gid,homedir,shell 
  6.                 do 
  7.                         echo -n "$name=" 
  8.                         echo -n $(echo $LINE  | cut -d: -f$NUM) //以:分割显示 
  9.                         echo -n "," 
  10.                         NUM=$(( $NUM + 1 ))  //第一个字段显示完变量+1 
  11.                                 if [ $NUM -eq 2 ] ||[ $NUM -eq 5 ];then //排除第二个和第五个字段 
  12.                                         NUM=$(( $NUM + 1 )) 
  13.                                 fi       
  14.                         sleep 1 //每一行显示一个字段停顿1秒 
  15.                 done     
  16.  
  17.         echo //每一行显示完插上空的一行 
  18. done </etc/passwd  //将/etc/passwd内容输入到while read循环中 

 

部分脚本分析:

cut -d: -f$num 取每一列以:分割的部分

echo –n 在同一行显示下一行内容,不进入下一行

num=$(($num+1)) 变量进行数值,每次加1

sleep 1  运行过程中停顿1

以下是脚本执行的结果,部分内容未显示出来。

 

转载地址:http://inixx.baihongyu.com/

你可能感兴趣的文章
PHP CURL并发,多线程
查看>>
CentOS 6.5 PYPI本地源制作
查看>>
raspberry 更换阿里源
查看>>
ES 概念及动态索引结构和索引更新机制
查看>>
JavaWeb ---Filter、Servlet
查看>>
django定制自己的admin界面
查看>>
简单计划一下:
查看>>
nodejs 安装环境配置(windows)
查看>>
Eclipse 環境中的 NuttX 編譯和除錯
查看>>
INSTALLING LIGHTTPD on CentOS 6.2
查看>>
子类能否重写父类的静态方法
查看>>
JS正则表达式验证身份证号码
查看>>
wap网站获取访问者手机号PHP类文件
查看>>
技术之centos7安装docker
查看>>
教你如何用内容营销生成客户
查看>>
thread的start()和run()
查看>>
开源工具:Mina
查看>>
微职位产品改版学员帮助文档(4月19日)
查看>>
Javascript加载执行加速
查看>>
Cacti完全使用手册 ( 让你快速个性化使用Cacti )
查看>>