Shell脚本之while read line的用法
while read line
do
…
done < file
read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。还记得while根据其后的命令退出状态来判断是否执行循环体吗?是的,read命令也有退出状态,当它从文件file中读到内容时,退出状态为0,循环继续惊醒;当read从文件中读完最后一行后,下次便没有内容可读了,此时read的退出状态为非0,所以循环才会退出。
案例:
[root@centos7 scripts]# cat /root/scripts/info
192.168.37.131 root 123456
192.168.37.132 root 123456 [root@centos7 scripts]# vim 6.sh
#!/bin/bash
file=/root/scripts/info
while read line;do
user=$(echo $line | cut -d " " -f 2)
ip=$(echo $line |cut -d " " -f 1)
passwd=$(echo $line|cut -d " " -f 3)
# cmd=$*
echo "-- $user -- $ip -- $passwd"
done < $file [root@centos7 scripts]# sh 6.sh
-- root -- 192.168.37.131 -- 123456
-- root -- 192.168.37.132 -- 123456
 
另一种也很常见的用法:
command | while read line
do
…
done

如果你还记得管道的用法,这个结构应该不难理解吧。command命令的输出作为read循环的输入,这种结构长用于处理超过一行的输出,当然awk也很擅长做这种事

案例:

[root@centos7 scripts]# cat /root/scripts/info
192.168.37.131 root 123456
192.168.37.132 root 123456 [root@centos7 scripts]# vim 5.sh
#!/bin/bash
file=/root/scripts/info
cat $file|while read line;do
user=$(echo $line | cut -d " " -f 2)
ip=$(echo $line |cut -d " " -f 1)
passwd=$(echo $line|cut -d " " -f 3)
# cmd=$*
echo "-- $user -- $ip -- $passwd"
done [root@centos7 scripts]# sh 5.sh
-- root -- 192.168.37.131 -- 123456
-- root -- 192.168.37.132 -- 123456

Shell脚本之while read line的用法的更多相关文章

  1. Shell脚本:while read line无法读取最后一行的问题

    [1]Shell脚本:while read line无法读取最后一行的问题 刚刚利用shell脚本处理日志文件时,发现了一个问题:while read line无法读取到最后一行 通过编辑器可以看到待 ...

  2. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  3. Shell脚本、Shell脚本结构、date命令的用法、变量

    1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

  4. shell脚本编程之变量的小用法

    变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: ${parameter:+wor ...

  5. shell脚本介绍
 shell脚本结构和执行
date命令用法
 shell脚本中的变量

  6. shell脚本,tee小工具的用法。

    解释: tee是个工具 , 它的作用就是把标准输出,复制一份,扔文件里 ,原标准输出还输出,-a就相当于 >> 追加到文件里的意思.  不加就是 > 重定向到文件里去.

  7. 利用 tee 命令调试shell脚本中的管道

    在编写shell脚本时,调试是个比较麻烦的事,特别是涉及到多层管道命令的时候,会产生多个中间结果,tee命令的作用是从标准输入中读取数据写入标准输出或文件中,利用它可以从管道中读取中间结果并写入本地临 ...

  8. Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法

    一.需求背景     因此次项目的生产环境中部署了多套系统,每天会产生大量的日志(数百GB的量),侵占了服务器宝贵的存储资源空间.为了有效缓解服务器存储压力,考虑通过Linux的Shell脚本结合cr ...

  9. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  10. Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)

    Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...

随机推荐

  1. CSOL大灾变移植记录

    在2019年,我玩u3d把玩了一段时间,并制作了一些Demo,其中包括FPSDemo,RPG动作游戏Demo,一些截图如下: 时间到了2020年5月底,我开始玩之前大学研究过的jMonkeyEngin ...

  2. QT窗口显示的风格设置

    在main.cpp中添加头文件#include <QStyleFactory> 然后在QApplication a(argc, argv);后添加 a.setStyle(QStyleFac ...

  3. 初探AOP

    1.背景介绍 1.什么是AOP 1)在OOP(面向对象编程)中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.  2)AOP则将封装好的对象剖开,找出其中对多个 ...

  4. 杭电OJ1029题C++实现

    解题思路:因为要求的数出现的次数总是比其他数字出现的次数多1,所以若总是用相同的数去与其他的数相抵,那么最后只剩下一个,那就是要求的数. 另外需要注意的一点就是,最好不要去开长度为999999的数组, ...

  5. 向excel中写数据的python代码

    ①首先需要安装xlwt插件 安装语句:pip install xlwt ②python代码 1 import xlwt 2 ''' 3 调用xlwt模块中的Workbook方法来创建一个excel表格 ...

  6. plsql链接oracle

    安装两个oracle文件夹在一个database中,安装plsql 要先配置两个都要修改,不然会找不到服务器 管理员运行  监听服务/监听位置和数据库服务都要修改 ass文件---监听程序配置 和本场 ...

  7. Eclipse 搭建一个简单的SpringBoot+WebSocket环境

    WebSocket是一种在单个TCP连接上进行全双工通信的协议. WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范. WebSocket API也被 ...

  8. 项目实训DAY7

    今天与昨天一样,查论文,并美化了一下功能界面的样式.

  9. maven资源导出问题

    <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> < ...

  10. Jmeter五、jmeter中的逻辑控制器

    1.simple controller 提供一个块的结构和控制.更方便,更清晰. 嵌套其他的controller 2.loop controller 循环控制器 控制循环次数 可以使用变量 ${__t ...