Shell编程之循环语句 for while until
一. 循环语句
1.for语句结构
for 语句用来 遍历 集合或列表。
shell 中有两种用法:
for i in $(seq 1 5);for i in {1…5};for i in $(seq 5)
for ((i=1;i<=5;i+=2));
- 读取不同的变量值,用来逐个执行同一组命令
计算从1到100所有整数的和
#!/bin/bash
sum=0
for i in {1..100}
do
sum=$[$sum + $i ]
done
echo $sum
#!/bin/bash
#.求从1到100所有整数的偶数和、奇数和
sum=0
for ((i=1; i<=100; i+=2))
do
sum=$[ $sum + $i ]
done
echo "奇数和为:$sum"
sum1=0
for ((a=2; a<=100; a+=2))
do
sum1=$[ $sum1 + $a ]
done
echo "偶数和为:$sum1"
2.while语句结构
- 重复测试某个条件,只要条件成立则反复执行
#!/bin/bash
a=1
while [ $a -le 10 ]
do
echo $a
a=$[ $a + 1 ]
done
echo "最后的值为:$a"
#!/bin/bash
# 批量添加用户 以stu开头,20个用户 stu1,stu2 密码12313
a=1
while [ $a -le 20 ] do
useradd stu$a
echo 123123 | passwd --stdin stu$a
a=$[ $a + 1 ]
done
#!/bin/bash
# 猜价格 中奖品
sorce=$[$RANDOM % 1000]
a=1
num=0
while [ $a -lt 2 ]
do
read -p "请输入你猜的价格(1-999之间):" price
if [ $price -eq $sorce ];then
echo "恭喜你猜对了!"
num=$[ $num + 1 ]
a=$[ $a + 1 ]
elif [ $price -gt $sorce ];then
echo "你猜高了!"
num=$[ $num + 1 ]
elif [ $price -lt $sorce ];then
echo "你猜低了!"
num=$[ $num + 1 ]
fi
done
3.until语句结构
- 重复测试某个条件,只要条件不成立则反复执行
#!/bin/bash
#不满足a>10 的都输出出来
a=1
until [ $a -gt 10 ]
do
echo $a
a=$[ $a + 1 ]
done
- 如何调试 bash 脚本?
将 -xv 参数加到#!/bin/bash 后