shell 脚本-09循环

shell 脚本-循环

shell 中的循环包括 for while until 三种

for

for 循环的语法格式为 for var in item1 item2 ... itemN do command1 command2 ... commandN done

str_arr=('a' 'b' 'c' 'd')
for item in ${str_arr[*]}
do
    echo $item
done

输出结果:

a
b
c
d

还可以使用 for 循环输出字符串

str="I am eno"
for str in $str
do
    echo $str
done

输出结果:

I
am
eno

while

while 的语法格式为 while condition do command1 command2 ... commandN done
conditiontrue 时, 继续执行循环体的内容, 直到conditionfalse 跳出循环

num=0
# num 小于等于5时循环递增, 直至 num 大于 5
while [ $num -le 5 ]
do
    echo $num
    num=`expr $num + 1`
done

输出结果:

0
1
2
3
4
5

until

until 的用法和 while 一样, 语法格式同样时 until condition do command1 command2 ... commandN done. 不同的是, until 的执行条件和 while 相反. whileconditiontrue 执行, 而 until 则是 conditionfalse 时才执行.

num=10
# num 大于5时执行递减, 直至 num 小于等于 5
until [ $num -le 5 ]
do
    echo $num
    num=`expr $num - 1`
done

执行结果:

10
9
8
7
6

循环的中断

shell 中循环可以使用 breakcontinue 中断, 执行 break 会跳出当前所有循环
continue 则会跳出所有循环

num_list=(1 2 3 4 5 6 7 8 9)
for number in ${num_list[*]}
do
    if [ $number -ge 5 ]
    then
        # 当 number 大于等于 5 时, 跳出所有循环, 不再遍历之后的数据
        break
    fi;
    echo $number
done

执行结果:

1
2
3
4

num_list=(1 2 3 4 5 6 7 8 9)
# 输出所有偶数
for number in ${num_list[*]}
do
    if [ `expr $number % 2` != 0 ]
    then
        # 当number为奇数时, 跳出当前循环不执行 echo $number 当时依旧会遍历之后的数据
        continue
    fi;
    echo $number
done

执行结果:

2
4
6
8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值