shell脚本循环语句

  • 一、循环语句
    • 1.1 for循环语句
    • 1.2 for循环语法
    • 1.3 for循环案例
    • 1.4 类C风格循环
  • 二、while语法
    • 2.1 语法结构
    • 2.2 while语法使用的一些案例
  • 三、until 循环语句结构
    • 总结:

引言: 高效工作必备的循环语句

一、循环语句

1.1 for循环语句

for循环,又有人称之为条件循环,或者for i in ,其实就是for循环的特性,次数和给与的条件是成正比的。

读取不同的变量值,用来逐个执行同一组命令 。示意图 :

1.2 for循环语法

语法结构

(1)列表循环

(2)不带列表循环

(3)类C风格的for循环

1.3 for循环案例

for 变量名 in {list}     ###变量池do     ###开始
command    ###执行的命令
done     ####结尾for i in {a..c}
doecho $i
done for i in {1..5}    //{}里面不识别变量
doecho $i
done

编辑脚本内容

for i in `seq 4`   //seq 5=1、2、3、4、序列
do      echo $i
done


a=3

for i in seq $a //seq可以引用变量
do
echo $i
done



调用显示i的值


输出数列中的奇偶数

花括号{}和seq在for循环的应用:
for i in {1…50…2} 1-50的奇数
for i in {2…50…2} 1-50的偶数
for i in {10…1} 1-10倒序排列
for i in $(seq 10) 1-10正序排列
for i in $(seq 10 -1 1) 1-10倒序排列
for i in $(seq 1 2 10) 1-10的奇数,中间为步长
for i in $(seq 0 2 10) 1-10的偶数,中间为步长

取0~10之间的奇数/偶数



不带列表循环执行时由用户指定参数和参数的个数决定的

for 变量名
docommand
done

[root@localhost ~]# . /c.sh   //没有给脚本传参所以执行了没有结果[root@localhost ~]# . /c.sh a   //把a赋值给变量i,i有值了它就开始执行do..done了hello


实用用法:

批量创建用户



根据IP地址列表查看主机状态

IP=`cat ip.txt`  也可以将ip.txt换成整个网段,以检测整个网段主机的存活情况
for i in $IP
do
ping -c 3 $i >/dev/null
if [ $? -eq 0 ]
then
echo "$i is up"
else
echo "$i is down"
fi
done


以及最常见的密码校验

1.4 类C风格循环

for ((expr1;expr2;expr3))
docommand
doneexpr1:定义变量并赋初值
expr2:决定是否循环
expr3:决定循环变量如何改变,决定循环什么时候退出

显示输出1-5


嵌套循环星星的格式


99乘法表



倒三角


随机生成18位密码


二、while语法

2.1 语法结构

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环
先定义一个变量
while 表达式(条件)
do循环语句命令
done

示意图

2.2 while语法使用的一些案例

打印1-5


循环终止是因为i=6不满足条件,得出最后值为6

列出50以内能被3整除的数


猜价钱小游戏

PC=`expr $RANDOM % 50`  注意空格
a=0
echo "商品的实际价钱范围为0-50,请猜猜看是多少"
while true
do
read -p "请输入你猜的价格数目:" num
let a++
if [ $num -eq $PC ];thenecho "恭喜你猜对了,实际价格是$PC"echo "你一共猜了$a次"exit 0elif [ $num -gt $PC ];then
echo "你猜高了"
elseecho "你猜低了"
fi
done



监控系统资源中的内存和硬盘空间

#!/bin/bash
disk_size=$( df / |awk '/\//{print $4 }')
Mem_size=$(free | awk '/Mem/{print $4}')
while
doif [ $disk_size -le 2560000 -a $Mem_size -le 102400 ];thenmail -s Warning root <<EOF内存和硬盘空间不足请尽快处理!
EOFfi
done

三、until 循环语句结构

用法: 重复测试某个条件,只要条件不成立则反复执行

只要while后面的命令退出状态为0,while循环就一直执行下去,until命令与while命令相似,唯一的区别在于,只要until后面的命令退出不为0,until循环就一直执行下去,也就是说,使用until语句重复执行一段代码直到条件为真为止,与while类似

语法结构示意图


示例
计算0-50的和

总结:

循环语句的出现可以帮助我们节省更多的时间与精力,以更少的时间干更多的事。

shell 脚本循环语句相关推荐

  1. linux中脚本循环语句,Shell脚本循环语句

    Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能.我们今天就来认识if.for.while.case语句的具体应用. 一.使用if语句结构 ...

  2. Shell脚本循环语句及exit、continue和break用法

    目录 一.for循环语句 二.while循环语句结构 三.until 循环语句结构 四.exit.continue和break 一.for循环语句 用法: 读取不同的变量值,用来逐个执行同一组命令 f ...

  3. shell脚本——循环语句

    shell脚本--编程之循环语句(for.while.until) 一.输出字符串或提取Shell变量的值--echo命令 二.for循环语句 三.while循环 while 猜数字小游戏 四.unt ...

  4. Linux之shell脚本循环语句for while until

    一.for循环语句 for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的 对象不一样,其他命令相同.例如,根据通讯录中的姓名列表创建系统账号,根据服务器清 单检 ...

  5. Linux _ Shell编程 — 循环语句

    Linux _ Shell编程 - 循环语句 一.循环语句for的用法 二.循环语句while的用法 三.循环控制语句 一.循环语句for的用法 for 变量名 in 单词表do命令表done 变量依 ...

  6. 怎么编写Linux脚本循环语句,shell脚本及常用循环语句

    博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...

  7. Linux从入门到精通系列之SHELL编程循环语句语法及实例详解(forwhileuntil)

    前言 Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能.我们今天就来认识for.while.case语句的具体应用. 插个小广告吧,虽然我 ...

  8. linux中循环控制语句,3.2.3 Shell脚本--循环控制语句

    一. 循环控制语句 1. for循环语句 2. while循环语句 3. until 循环语句 条件为假,执行循环 二. 练习题 1. for 语句 ① 分行打印各参数. [提示]:体会$@.$*.& ...

  9. Shell版本循环语句(if//for/while/case)

    if选择结构 if单分支处理:当"条件成立"时执行命令序列xx,否则,不执行任何操作(只判断为真) if [条件测试] ; then 命令序列xx fi 示例:检测/media/c ...

最新文章

  1. paddleocr ‘bytes‘ object has no attribute ‘shape‘
  2. SDK与API的联系与区别
  3. 嵌入式ARM启动代码的工作
  4. html和xhtml和html5一些区别和笔记
  5. 相对于oracle数据库的作用 类似于,郑州大学软件技术学院Oracle试卷
  6. Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:
  7. java接口签名(Signature)实现方案续
  8. matlab函数包_Matlab论文插图绘制的270种补充颜色
  9. 业余无线电通信_业余无线电UV段攻略
  10. 好程序员分享如何看待CSS中BEM的命名方式?
  11. 与用户交互、格式化输出、基本运算符
  12. dbv 检查数据文件是否有坏块
  13. 入门 | S3C2440启动过程分析
  14. 【css设置滚动条粗细】
  15. Ubuntu16.04 查看硬盘序列号以及系统版本与安装时间
  16. mysql Unknown error 1146
  17. 51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句
  18. Web开发者的福利 30段超实用CSS代码笔记
  19. 养鸡场的计算机管理,养鸡场管理系统7.3 免费版
  20. 基于神经网络rnn模型心脏病特征预测心脏病

热门文章

  1. Volley请求中,使用cookit进行服务器与客户端的会话保持
  2. 论GTA线上科技的使用原理及GTA线上模式P2P运行原理
  3. SQLServer2008服务无法启动
  4. 国产手机硬杠苹果?想多了,消费者等着抢购iPhone14
  5. android 空调遥控器——红外设备(基础)
  6. 苹果手机里微信不支持
  7. el-upload 组件在 on-success 文件上传成功的钩子中传递更多参数
  8. iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码
  9. 北航计算机考研复试线预测,2021年北京航空航天大学考研分数线预测!考生数学满分,网友:内心炸裂...
  10. 基于Triton Server部署BERT模型