shell for循环,while循环,until循环

时间:2022-01-01 16:04:37

1.for循环

这里介绍两种fo循环:列表形式的for循环,类C语言的for循环

(1)列表形式的for循环:累加求和

#
#/bin/bash
sum=0
for i in {1..100}
do
let "sum+=i"
done
echo "sum=$sum"
这里使用简写形式的列表{1..100}:表示1 2 3 4 ......100,主要放在大括号里面,第一次循环i等于列表中的第一个元素,也就是1,第二次等于第二个元素(2)...一直执行100次

结果:

lan@lan_ubuntu:~/桌面/program/课本$ ./for6.sh
sum=5050

(2)类C语言的for循环

lan@lan_ubuntu:~/桌面/program/课本$ cat for7.sh
#!/bin/bash
sum=0
for((i=0;i<=100;i++))
do
sum=`expr $sum + $i` #注意了这个不是单引号,是反引号,Esc和Tab之间的那个键就是啦
done
echo "sum=$sum"

结果

lan@lan_ubuntu:~/桌面/program/课本$ ./for7.sh
sum=5050
还是这种写法看起来好一点

注意要用两个括号

while循环

while循环,循环依据是:如果条件表达式 [ ... ],的值为真,继续循环,直到条件表达式的值为假,结束循环。

lan@lan_ubuntu:~/桌面/program/课本$ cat while.sh
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
sum=`expr $sum + $i`
i=`expr $i + 1`
done
echo The sum is $sum
结果:

lan@lan_ubuntu:~/桌面/program/课本$ ./while.sh
The sum is 5050

循环的do和done其实类似于C语言中的{和}。

until循环语句

until 条件表达式

    do

        命令列表

done

如果条件表达式的值为假,until循环,继续循环,直到条件表达式为真的时候才终止循环

例:累加1+2+3+...+100=5050

lan@lan_ubuntu:~/桌面/program/课本$ cat until.sh
#!/bin/bash
#until 语句:如果条件表达式的值为假,继续循环,直到表达式的值为真循环结束

i=1
sum=0

until [ $i -gt 100 ]
do
sum=`expr $sum + $i`
i=`expr $i + 1`
done
echo "sum=$sum"
结果:

lan@lan_ubuntu:~/桌面/program/课本$ ./until.sh
sum=5050