目录
一、for循环
- 读取不同的变量值,用来逐个执行同一组命
for 变量 in 取值列表
do
命令序列
done
[root@localhost ~]# for i in 1 2 3 4 5
> do
> echo "第$i次唱!跳!rap 篮球!"
> done
第1次唱!跳!rap 篮球!
第2次唱!跳!rap 篮球!
第3次唱!跳!rap 篮球!
第4次唱!跳!rap 篮球!
第5次唱!跳!rap 篮球!
[root@localhost ~]# for i in {1..5}
> do
> echo "$i次鸡你太美"
> done
1次鸡你太美
2次鸡你太美
3次鸡你太美
4次鸡你太美
5次鸡你太美
for (变量-初始值;变量范围;变量的迭代方式)
do
命令序列
done
[root@localhost ~]# for ((i=1;i<=8;i++))
> do
> echo $i
> done
1
2
3
4
5
6
7
8
[root@localhost ~]# echo $i
9
for循环实操
1.计算从1到100所有整数的和
[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# vim 1.sh
#!/bin/bash
#计算从1到100所有整数的和
sum=0
for i in {1..100};
do
sum=$(($i+$sum))
done
echo "$sum"
[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# ./1.sh
5050
[root@localhost ~]#
2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
[root@localhost ~]# vim 2.sh
#!/bin/bash
#输入一个小于100的整数,并计算从1到该数之间所有整数的和
read -p "请输入一个小于100的整数:" num
if [ $num -eq 1 ];
then
echo "和等于: $num"
sum=0
elif [ $num -gt 1 ]&& [ $num -lt 100 ];
then
for ((i=l;i<$num; i++))
do
let sum=$sum+$i
done
echo "1到$num的和为$sum"
else
echo "输入错误"
fi
[root@localhost ~]# chmod +x 2.sh
[root@localhost ~]# ./2.sh
请输入一个小于100的整数:25
1到25的和为300
二、while循环
重复测试某个条件,只要条件成立则反复执行
[root@localhost ~]# a=1
[root@localhost ~]# while [ $a -le 8 ]
> do
> echo $a
> let a++
> done
1
2
3
4
5
6
7
8
while循环实操
计算从1到100所有整数的和
[root@localhost ~]# vim w1.sh
#!/bin/bash
#计算从1到100所有整数的和
sum=0
i=0
while [ $i -le 100 ]
do
sum=$[ $sum + $i ]
i=$[ i + 1 ]
done
echo "1-100所有整数的和为:" $sum
[root@localhost ~]# chmod +x w1.sh
[root@localhost ~]# bash w1.sh
1-100所有整数的和为: 5050
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
[root@localhost ~]# vim w2.sh
1 #!/bin/bash
2 #提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
3
4 sum=0
5 i=1
6
7
8 read -p "快点!输入一个0-100的整数: " num
9 if [ $num -le 100 ];then
10 while [ $i -le $num ]
11 do
12 sum=$[ sum + i ]
13 i=$[ i + 1 ]
14 done
15 echo "1-$num的和为: $sum"
16 else
17 echo "昏头了呀你!小于100的整数"
18 fi
[root@localhost ~]# chmod +x w2.sh
[root@localhost ~]# bash w2.sh
快点!输入一个0-100的整数: 80
1-80的和为: 3240
三、until循环命令
重复测试某个条件,只要条件不成立则反复执行
until [ $i -gt 10 ];do
echo $i
let i++
sum=$(($sum+$i))
done
until循环实操
用until循环求1到100的和
[root@localhost ~]# vim u1.sh
#!/bin/bash
#用until循环求1到100的和
sum=0
i=0
until [ $i -gt 100 ]
do
sum=$[sum+i]
let i++
done
echo "输出1到100的和:$sum"
[root@localhost ~]# chmod +x u1.sh
[root@localhost ~]# bash u1.sh
输出1到100的和:5050