位置: 编程技术 - 正文

Shell编程中while与for的区别及用法详解(shell while)

编辑:rootadmin

推荐整理分享Shell编程中while与for的区别及用法详解(shell while),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell的while语句,Shell编程中的循环,Shell编程中显示的变量的为,Shell编程中显示的变量的为,Shell编程中显示的变量的为,Shell编程中的switch,Shell编程中实现多条件控制的是,Shell编程中实现多条件控制的是,内容如对您有帮助,希望把文章链接给更多的朋友!

在shell编程中经常用到循环,常用的循环有for和while循环两种。while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别。

一、常用语法

1、for循环

for循环常用的语法结构有如下几种:

for 变量 in seq字符串for 变量 in `command` " "for 变量 in "$@"或“$*”for((赋值;条件;运算语句))

2、while循环

while循环常用的语法结构有如下几种:

二、行读取示例

这里以常见的df获取磁盘信息为例,了解下使用for和while的几种循环方法处理时的区别。先看下我写的脚本,内容如下:

上面的脚本执行时结果如下:

可以看到,只有后面两种方法可以正常获取到我们想要的数据,前面两种方法在处理时和我们想要的结果都不一样。此示例得出的结果为:

1、while循环: 以行读取文件,默认分隔符是空格或者Tab;

2、for循环: 以空格读取文件,也就是碰到空格,就开始执行循环体,所以需要以行读取的话,就要把空格转换成其他字符。

三、ssh连接与wait

这里还是以一个测试脚本为例:

Shell编程中while与for的区别及用法详解(shell while)

此示例的结果这里不再输出,具体可以使用该脚本ssh几台主机做个测试,测试后得到结果如下:

1、for循环: 循环体在后台执行,等待循环体全部执行结束,后面的命令接着执行。

2、while循环: wait没起到作用,循环体在后台执行,后面的命令也同时在执行。循环体内有ssh、scp、sshpass的时候有执行一次循环就退出的情况,解决该问题方法有如下两种:

a、使用ssh -n "command" ;b、将while循环内加入null重定向,如 ssh "cmd" < /dev/null 将ssh 的输入重定向输入。

四、执行效率

在对大文件进行按行读取(for在读取文件时,可以for i in `cat filename`进行按行读取)的效率方面,经测试while 要更快一些。

shell:for和while用法

写法一:

----------------------------------------------------------------------------#!/bin/bash

while read linedoecho $linedone < file(待读取的文件)----------------------------------------------------------------------------

写法二:(并发脚本慎用,grep不能输出全部匹配的信息)----------------------------------------------------------------------------#!/bin/bash

cat file(待读取的文件) | while read linedoecho $linedone----------------------------------------------------------------------------

写法三:

----------------------------------------------------------------------------for line in `cat file(待读取的文件)`doecho $linedone----------------------------------------------------------------------------

说明:

for逐行读和while逐行读是有区别的,如:

如何使用微博自动记录俯卧撑个数 根据SMART原则我制定了年的目标。每个月都有一个小目标,每个目标都是specific(具体)、Measurable(可度量)、Attainable(可实现)、Relevant(相关性)、Time-bound(

Linux系统中bash shell编程的个基础问题讲解 第1问:为何叫做shell?在介绍shell是什么东西之前,不妨让我们重新审视使用者与电脑的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接

Linux shell编程中IO和条件及循环处理的细节问题讨论 ?差在哪?谈到I/Oredirection,不妨先让我们认识一下FileDescriptor(FD)。程序的运算,在大部份情况下都是进行数据(data)的处理,这些数据从哪读进?又

标签: shell while

本文链接地址:https://www.jiuchutong.com/biancheng/371420.html 转载请保留说明!

上一篇:使用netcat(瑞士军刀)进行文件传输

下一篇:如何使用微博自动记录俯卧撑个数(微博是怎么用)

  • 房地产预缴增值税计算方式
  • 房产税应该怎么申报
  • 用友会计报表
  • 减免税款借贷方表示
  • 新会计准则 预付房租怎么做账
  • 租地建厂房合同
  • 补交税款时加收的滞纳金有上限吗
  • 税务机关如何防范关联企业涉税风险问题
  • 事业单位破产清算程序规定
  • 还没入库,发票已经给财务了 怎么办
  • 收到货款确认收入但是后期开票了怎么做分录
  • 应收账款资产减值损失转回和核销的区别
  • 划拨土地使用权多少年
  • 房租当月无发票怎么办
  • 网银年费属于财务费用哪一项
  • 出口用的增值税税率
  • 超过三个月开发票
  • 发票专用章备案需要什么资料
  • 增值税季度不超过30万怎么填表
  • 办公室购买绿植违规吗
  • 现金流量表附表的其他指的是什么
  • 电子发票跨月怎么开红字发票
  • 什么情况下征收车船税
  • 电梯维修公司发展前景
  • 利润弥补亏损如何处理
  • 收到的产品返利怎么做账
  • 苹果系统中英文切换快捷键
  • dhcp的安全防范
  • 所得税补税怎么申报
  • win没有投影到此电脑怎么办
  • 标书装订费用分录
  • 政府补助资金能否作为资本金
  • 外企借款投资利息高吗
  • 净损益是
  • php图片链接
  • 增资导致的股权稀释涉税吗
  • 预提土增税账务处理
  • 资本公积金为什么不能用于弥补亏损
  • 关于扩展检索,下列说法正确的是
  • 免征个人所得税33种情形
  • 为什么法律不允许安乐死
  • wordpresscom
  • discuz论坛修改密码位置
  • Anaconda(python,pycharm)半详细安装教程
  • 发票 技术服务
  • python filter dict
  • python报错怎么办
  • 计提坏帐包含其他收入吗
  • 销项税额和进项税额月底怎么结转
  • 税控盘和维护费440元抵减增值税吗
  • 营业税改征增值税跨境应税行为增值税免税管理办法
  • 垃圾处理费如何做账
  • 公司聘请专家工资怎么算
  • 勘察设计费是否可以进入在建工程
  • 小企业研发费用放在哪个科目
  • 出口发票上的汇票是什么
  • 原始凭证分类的依据有什么
  • 未取得增值税发票措施有哪些
  • 复式记账法主要有
  • 商业企业购进商品的分录
  • 安装mysql的总结
  • win8激活点不进去
  • xp开机后蓝屏
  • win10系统应用
  • linux如何配置双网卡
  • windows 7如何连接
  • win10 windows设置
  • coco包装设计
  • hover在jquery中的用法
  • javascript中cookie
  • node作为中间件做接口转发
  • python 变参
  • 云南省国家税务局APP
  • 发票 报销期限
  • 亦庄地税局税务局营业大厅
  • 浙江省国家电子税务局官网登录
  • 大米包装有二道封口线正常吗
  • 车辆购置税查询不到应征欠税信息,不能进行扣款操作
  • 河南税务局退税流程
  • 贵州社保在线年审官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设