循环语句 ------for ,while ,until

本文详细介绍了Shell脚本中的for、while和until循环语句的使用方法及示例,包括计算1-100整数之和、筛选偶数之和等应用场景。同时,展示了猜数字游戏的实现,以及until循环用于计算1-50的和。这些内容对于理解Shell脚本的控制流程至关重要。

for语句

读取不同变量值,用来逐个执行同一组命令

for  循环  指定次数循环(遍历)            
格式: for 变量名  in 取值列表                           
           do                                              
                命令序列
           done

例题

输入1-100之间的整数并计算整数和

[root@localhost ~]# vim zheng.sh  //输入一个.sh文件
#!/bin/bash  //脚本声明
sum=0     //定义一个变量和
read -p "请输入一个0-100之间的整数:" a    //使用read命令获取输入内容为变量a赋值
for ((i=1;i<=$a;i++))      //for循环,i=1,循环次数小于等于变量a的值,i每次循环加1
do
  sum=$[$sum + $i]
done
echo $sum   //输出和的值
[root@localhost ~]# bash  zheng.sh   //通过bash运行zheng.sh文件
请输入一个0-100之间的整数:12  // 当输入12时表示从1-12之间的数相加得出来的数
78
[root@localhost ~]# bash  zheng.sh
请输入一个0-100之间的整数:32
528  

偶数和

 [root@localhost ~]# vim s.sh  //编辑一个文件
#!/bin/bash   //脚本声明
sum=0
for i  in  {1..100}  //数的取值范围
do
if [ $((i%2)) -eq 0 ];then  //偶数的表达式
   sum=$[$i+$sum]
fi
done
echo $sum    //输出和的值
[root@localhost ~]# bash s.sh
2550  //通过bash运行可以查看1-100之间的偶数和值

while语句

重复测试某个条件,只要条件成立立刻执行

while  语句
格式:
while 条件测试操作
do
    命令序列
done

在这里插入图片描述

例题

1–10循环

[root@localhost ~]# vim chengfa.sh
#!/bin/bash
num=1
while [ $num -le 10 ]
do
   echo $num
  let num++
done
[root@localhost ~]# bash chengfa.sh
1
2
3
4
5
6
7
8
9
10

1–100的偶数和

[root@localhost ~]# vim os.sh
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
if [ $((i%2)) -eq 0 ];then
   let sum=$i+$sum
fi
   let i++
done
echo  $sum
[root@localhost ~]# bash  os.sh
2550

猜数字

[root@localhost ~]# vim chengfa.sh
#!/bin/bash
n=30
while true
do
read -p "请输入一个数字:" num
if [ $num -eq $n ];then
echo "你猜对了"
break
   elif [ $num -gt $n ];then
echo "你猜大了,在小点"
   elif [  $num -lt $n ];then
echo "你猜小了,在往大点的猜"
fi
done
[root@localhost ~]# bash  chengfa.sh
请输入一个数字:10
你猜小了,在往大点的猜
请输入一个数字:40
你猜大了,在小点
请输入一个数字:30
你猜对了

until

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

until 语句:重复测试某个条件,条件不成立则一直执行
until   条件测试
do
      命令序列
done

在这里插入图片描述

例题

[root@localhost ~]# vim until_1~50.sh
#!/bin/bash
sum=0
i=1
until [ $i -gt 50 ]
do
  sum=$[$sum + $i ]
  let i++
done
echo "1~50的和为$sum"
[root@localhost ~]# bash  until_1~50.sh
1~50的和为1275
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值