Shell脚本----循环!

以案例来理解循环

一、for循环语句

第一种方式:

for 变量名 in 取值列表
do
	命令序列
done
  • for语句执行流程:先将列表中的第一个取值赋值给变量,并执行do……done之间循环体的命令序列,然后将列表中的第二个取值赋值给变量,执行do……done中的命令序列,以此类推,直到列表中的取值都用完
[root@localhost ww]# vim xh.sh
#!/bin/bash
for i in {1..5}
do
        echo $i
done
[root@localhost ww]# bash xh.sh
1
2
3
4
5 
[root@localhost ww]# vim xh.sh
#!/bin/bash
for i in {1..5}
do
        echo hello
done
[root@localhost ww]# bash xh.sh
hello
hello
hello
hello
hello
[root@localhost ww]# vim xh.sh
#!/bin/bash
#列出1到10中的偶数
for i in {1..100}
do
        if [[ $i%2 -eq 0 ]];then
        echo $i
        fi
done
[root@localhost ww]# bash xh.sh
2
4
6
8
10      
[root@localhost ww]# vim xh.sh
#!/bin/bash
#计算1到100所有偶数的和
c=0
for i in {1..100}
do
        if [ $((i%2)) -eq 0 ];then
        c=$((i+c))
        fi
done
echo $c
[root@localhost ww]# bash xh.sh
2550
[root@localhost ww]# vim user.sh 
#!/bin/bash
#创建多个用户并设置密码
for i in {1..10}
do
useradd username$i
echo "123" | passwd --stdin username$i &> /dev/null
echo "unsename${i}用户已创建"
done
[root@localhost ww]# vim star.sh 
#!/bin/bash
for i in {1..5}
do
        for a in {1..5}
        do
                echo -n "* " //*后面有个空格
        done
        echo    //echo表示换行
done
[root@localhost ww]# bash star.sh 
* * * * * 
* * * * * 
* * * * * 
* * * * * 
* * * * *

第二种方式

[root@localhost ww]# vim xh.sh
#!/bin/bash
for ((i=1;i<3;i++))
do
        echo xxx
done
[root@localhost ww]# bash xh.sh
xxx
xxx   

二、while循环语句

while循环语句,判断条件测试结果,如果条件成立则执行命令序列,返回while条件测试,条件成立继续循环执行命令序列,直到条件不成立位置,使用while语句时应该避免出现死循环现象

while 条件测试操作     
do
	命令序列
done

对于死循环的结束命令

break 退出当前循环,任然执行循环外的命令
continue,不进行后面的命令序列,重新循环
exit 退出脚本
[root@localhost ww]# vim wl.sh
#!/bin/bash
#打印1到5的整数
i=1
while [ $i -le 5 ]
do
        echo $i
        let i++
done
[root@localhost ww]# bash wl.sh 
1
2
3
4
5
[root@localhost ww]# vim wl.sh
#!/bin/bash
#计算1到100的和
i=1
a=0
while [ $i -le 100 ]
do
        a=$((a+i))
        let i++
done
echo $a
[root@localhost ww]# bash wl.sh 
5050
[root@localhost ww]# vim c.sh
#!/bin/bash
n=6
while true        
####这里用true表示永远为真,循环会一直执行
do
        read -p "请输入一个数字 :" i
        if [ $i -eq $n ];then
                echo "你猜对了"
                break                //添加break,猜对了就会退出循环
        elif [ $i -lt $n ];then
                echo "你猜小了"
        elif [ $i -gt $n ];then
                echo "你猜大了"
        fi
done
[root@localhost ww]# bash c.sh
请输入一个数字 :5
你猜小了
请输入一个数字 :	7
你猜大了
请输入一个数字 :2
你猜小了
请输入一个数字 :6
你猜对了

三、untli循环语句

untli语句就是跟while相反的语句,while语句时条件成立才循环,untli语句实在条件不成立才循环

[root@localhost ww]# vim hh.sh 
#!/bin/bash
i=1
a=0
until [ $i -ge 100 ]
do
        a=$((i+a))
        let i++
done
echo $a
[root@localhost ww]# bash hh.sh 
4950        //条件不成立即i小于100才循环执行命令序列
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值