位置: 编程技术 - 正文

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(瑞士军刀)进行文件传输

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

  • 公司之间借款如何做账
  • 一次性扣除固定资产政策案例
  • 装修公司财务报销制度和流程
  • 预收预付科目是否已经取消
  • 变更税务法人需要怎么办
  • 售后回购确认为租赁的
  • 行政事业单位计提折旧起始日
  • 期末数减期初数等于
  • etc充值怎么操作
  • 到国税局领增值税发票需带什么
  • 进口产品不付汇会造成什么
  • 高新技术企业季报填报
  • 汇总记账凭证会计核算组织形式适用于
  • 新领的发票怎么导入uk开票系统
  • 不动产税征收标准
  • 公司对外投资是股东会还是董事会
  • 原材料采用实际成本法核算
  • 年度亏损计提所得税吗
  • 非独立核算的分公司是什么意思
  • 发票是不是都一样
  • 个税申报表怎么打印
  • 建筑业开票内容
  • 外购库存商品
  • 成品送检单表格
  • 公司按揭购车
  • 免税收入包括哪些收入
  • m1 mac 恢复出厂
  • 抵押质押的含义
  • 违约金合同条款怎么写
  • 营业款怎么存入公司账户
  • 定额发票收入怎么样确定
  • php中??
  • 委托银行收款属于什么科目
  • 差额征收是啥意思
  • 支付临时工的工资怎么做账
  • 非营利组织营利包括哪些
  • vite搭建项目
  • win10iis安装配置
  • 轻资产并购
  • php t_string
  • 前端es6是什么意思
  • yolov5 test.py
  • Python计算机视觉———照相机标定
  • php面试知识点
  • 季度申报所得税时可以用以前年度亏损吗
  • 增值税普通发票税率
  • 纳统全称
  • 进项抵扣项目
  • 实收资本未实缴是否罚款
  • 记账凭证如何填写样本
  • 发票遗失重开需要收费吗?
  • 申报工资总额除以在职人员人数
  • 过节费可以发现金吗
  • 单位结算卡和回单卡
  • 农民工工资专户销户流程
  • 广告宣传费纳税调整额怎么算
  • 其他应收款待抵扣借方是什么意思啊
  • 公司无形资产可以作为公司注册资金吗
  • mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法
  • 存储过程mysql
  • mysql_info
  • 雨林木风 u盘
  • Ubuntu 12.04/14.04 LTS版内核更新 修复七个重大安全漏洞
  • apache not found
  • linux系统输入法锁定了怎么解开
  • Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
  • linux获取操作命令的使用方法或参数选项内容
  • winxp远程桌面
  • windows10粘滞键
  • shell脚本中的数组
  • IE6支持position:fixed完美解决方法
  • shell脚本关闭指定程序
  • python正则\b
  • android自学
  • Android alertDialog 动态添加edittext无法弹出键盘解决方案
  • 在地税局工作是什么编制
  • 河东区地税局上班时间
  • 远程办税系统
  • 十月报税2021
  • 湖南省税务局网站2024公务员招聘
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设