栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

shell 脚本循环语句

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

shell 脚本循环语句

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}
do
    echo $i
done 

for i in {1..5}    //{}里面不识别变量
do
    echo $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 变量名 
do
   command
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))
do
   command
done

expr1:定义变量并赋初值
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 ];then
   echo "恭喜你猜对了,实际价格是$PC"
   echo "你一共猜了$a次"
   exit 0
     elif [ $num -gt $PC ];then
echo "你猜高了"
else
   echo "你猜低了"
fi
done



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

#!/bin/bash
disk_size=$( df / |awk '///{print $4 }')
Mem_size=$(free | awk '/Mem/{print $4}')
while
do
  if [ $disk_size -le 2560000 -a $Mem_size -le 102400 ];then
      mail -s Warning root < 
三、until 循环语句结构 

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

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

语法结构示意图


示例
计算0-50的和

总结:

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号