当前位置: 首页 > news >正文

09 Shell Scriptfor循环结构语句

Shell Scriptfor循环结构语句

一、Shell FOR循环语句概述

​ 属于shell的符合语句

​ 可以看出帮助信息给出了两种语法

[root@localhost ~]# help for
for: for NAME [in WORDS ... ] ; do COMMANDS; doneExecute commands for each member in a list.The `for' loop executes a sequence of commands for each member in alist of items.  If `in WORDS ...;' is not present, then `in "$@"' isassumed.  For each element in WORDS, NAME is set to that element, andthe COMMANDS are executed.Exit Status:Returns the status of the last command executed.
for ((: for (( exp1; exp2; exp3 )); do COMMANDS; doneArithmetic for loop.Equivalent to(( EXP1 ))while (( EXP2 )); doCOMMANDS(( EXP3 ))doneEXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression isomitted, it behaves as if it evaluates to 1.Exit Status:Returns the status of the last command executed.

​ 语法:

​ for NAME [in WORDS … ] ; do COMMANDS; done

​ 循环遍历WORDS中的元素,每次将元素赋值给NAME–

​ NAME:变量

​ WORDS:被扩展后得到的一个集合/列表

​ for (( exp1; exp2; exp3 )); do COMMANDS; done

​ 跟据(())种给定的三个算术表达计算循环

​ exp1:用于循环判断的变量初始值

​ exp2:循环判断的结束值

​ exp3:循环控制的步进值

二、Shell FOR循环语句简单实现

​ 对语法:for NAME [in WORDS … ] ; do COMMANDS; done的简单实现:

​ i:变量

​ “a” “b” “c”:一个集合或序列

[root@localhost ~]# for i in "a" "b" "c"; do echo "$i"; done
a
b
c

​ 使用扩展的方式得到一个集合/序列:

​ 可以看到在例子中,集合的位置使用了命令替换

​ 该例子的执行顺序是:

​ 先做命令替换,将命令:ls / 的执行结果扩展到命令的位置

​ 再执行for语句迭代命令替换的结果

[root@localhost ~]# for i in `ls /`; do echo $i;done
bin
boot
data
dev
dump.rdb
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

​ Seq命令获取一个列表用于for循环的迭代方式:

​ seq命令的语法:seq 起始值 步进值 结束值

[root@localhost ~]# for i in `seq 1 3 9`; do echo "$i"; done
1
4
7

​ 对语法:for (( exp1; exp2; exp3 )); do COMMANDS; done的简单实现:

[root@localhost ~]# for ((i=0;i<5;i++)); do echo $i; done
0
1
2
3
4

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【乐企-业务篇】OFD对应xml实体对象定义
  • uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点
  • 分苹果 - 华为OD统一考试(E卷)
  • Flask 第十二课 -- 错误处理
  • 末端回路漏电监测仪为何不可或缺?
  • Qt窗口——QDockWidget
  • git reflog
  • 【Linux】yum、vim、gcc使用(超详细)
  • Go语言grequests库并发请求的实战案例
  • 基于SSM的宿舍管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
  • 【Unity】对象池 - 未更新完
  • Zabbix 部署----安装 Zabbix(监控服务器)
  • 分布式事务seata
  • Flutter 安装,配置,运行第一个app 1
  • C++对C的扩充
  • [case10]使用RSQL实现端到端的动态查询
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • laravel 用artisan创建自己的模板
  • node.js
  • PHP 的 SAPI 是个什么东西
  • sessionStorage和localStorage
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 记录一下第一次使用npm
  • 驱动程序原理
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 学习ES6 变量的解构赋值
  • 运行时添加log4j2的appender
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​Redis 实现计数器和限速器的
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #stm32驱动外设模块总结w5500模块
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (11)MATLAB PCA+SVM 人脸识别
  • (2020)Java后端开发----(面试题和笔试题)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (poj1.3.2)1791(构造法模拟)
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (回溯) LeetCode 131. 分割回文串
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***监测系统的构建(chkrootkit )
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET CORE Aws S3 使用
  • .net Stream篇(六)
  • .net 调用php,php 调用.net com组件 --