shell编程之for循环

for循环是一种运行前测试语句,也就是运行任何循环体之前先要判断循环条件是否成立,只有在条件成立的情况下才会运行循环体,否则将退出循环。
1.1 带列表的for循环
带列表的for循环用于执行一定次数的循环,其语法结构如下:

for VARIABLE in (list)
do
    command
done

例如:

[root@node1 ~]# cat fruit.sh
#!/bin/bash
for FRUIT in apple orange banana pear
do
    echo "$FRUIT is John's favorite"
done
echo "No more favorite"
[root@node1 ~]# sh fruit.sh
apple is John's favorite
orange is John's favorite
banana is John's favorite
pear is John's favorite
No more favorite

也可以将列表的内容换成变量,循环的时候读取变量的值;或者in后面的内容可以是任意命令的标准输出。例如:

[root@node1 ~]# cat sum.sh 
#!/bin/bash
sum=0
for VAR in `seq 1 100`
do
    let "sum+=VAR"
done
echo "Ttal: $sum"
[root@node1 ~]# sh sum.sh 
Ttal: 5050

1.2 不带列表的for循环
不带列表的for循环如下所示:

for VARIABLE in (list)
do
    command
done

使用不带列表的for循环时,需要运行脚本时通过参数的方式给变量传值。例如:

[root@node1 ~]# cat sum.sh 
#!/bin/bash
sum=0
for VAR 
do
    let "sum+=VAR"
done
echo "Ttal: $sum"
[root@node1 ~]# sh sum.sh 2 5 6
Ttal: 13

1.3 类C的for循环
shell支持类C的for循环,语法结构如下:

for ((expression1;expression2;expression3))
do 
   command
done

expression1为初始化语句,用作变量的定义和初始化,可初始化多个变量,中间用逗号隔开;expression2为判断表达式;expression3修改变量的值,也可修改多个变量的值,中间用逗号隔开。
例如:

[root@node1 ~]# cat c_for.sh 
#!/bin/bash
for ((i=1,j=100;i<=10;i++,j--))
do
       echo "i=$i,j=$j"
done
[root@node1 ~]# sh c_for.sh 
i=1,j=100
i=2,j=99
i=3,j=98
i=4,j=97
i=5,j=96
i=6,j=95
i=7,j=94
i=8,j=93
i=9,j=92
i=10,j=91

1.4 for的无限循环
无限循环又叫死循环,使用类C的for循环,只要保证expression2条件为真即可,会一直运行,直到按下Ctrl+C组合键

[root@node1 ~]# cat c_for1.sh 
#!/bin/bash
for ((i=0;i<1;i+=0))
do
       echo "i=$i"
done
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值