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. linux篇之常用的文本操作命令

    命令                                                    功能 cat .tac                             显示文本文件 ...

  2. Java基础——(综合练习)选手打分

    package com.zhao.test; import java.util.Scanner; public class Test17 { /* 需求 : 在唱歌比赛中,有6名评委给选手打分,分数范 ...

  3. git版本回退:git reset --hard 版本号

    开发项目中会遇到各种奇葩的事情: 奇葩系列之在项目更新迭代开发正带劲的时候突然更新项目之前的项目出问题了要修复.在开发功能一半又要修复之前的问题着急上线的情况下.此时此刻git的版本回退是那么的迷人, ...

  4. 利用matlab求解函数微分

    利用matlab解决求解函数微分 matlab,微分 1. 问题提出 最近在复习高等数学,感觉可以结合 去理解他. 遇到了一个题目: 2. 具体代码 %{ 解决函数微分问题 %} clc; clear ...

  5. 第一课 Markdown 实操

    1.Markdown (#加空格) 二级标题 (##加空格) 三级标题 (###加空格) 四级标题 (####加空格) 2.字体 Hello world 加粗(字体2边加**) Hello world ...

  6. 通过n个线程顺序打印26个英文字母

    通过n个线程顺序打印26个英文字母,例如 n=3 则输出: thread0: a thread1: b thread2: c thread0: d 方案一:轮询 多个线程不断轮询是否是该线程执行任务. ...

  7. 安卓10.0蓝牙HIDL的直通式初始化流程

    本文仅介绍扼要的流程,没有系统化介绍. 首先从system\bt\hci\src\hci_layer_android.cc文件的函数void hci_initialize() 开始初始化: void ...

  8. Django基础篇 01- 初识Django

    一.Django介绍 flask,FastApi是轻量级服务端开发框架 Django是重量级服务端开发框架 ORM:封装了数据库操作 form:校验请求数据 安装Django: pip install ...

  9. 【LeetCode】——分割回文串II

    继续与动态规划斗智斗勇... 132. 分割回文串 II - 力扣(LeetCode) (leetcode-cn.com) 分析:记f[i]表示将字符串s[0:i]分割的最小次数.我们需要将列举出在[ ...

  10. vins-fusion(1)安装编译

    https://github.com/HKUST-Aerial-Robotics/VINS-Fusion https://blog.csdn.net/haner27/article/details/1 ...