Shell编程之循环语句
一、for循环语句
1. 作用及结构
- 读取不同的变量值,逐个执行同一组命令
格式:
for 变量名 in 取值列表
do
命令序列
done
一:for i in {1..10}/{1..10..2}
$(seq 1 2 10)
二:for ((i=1; i<=10; i++))
do
echo $i
done
三:for for ((i=1; i<=10; i++));do echo $i done
2. 应用实例
批量添加用户
- 用户名存放在name.txt文件中
- 初始密码均设为123
#!/bin/bash
a=$(cat name.txt)
for i in $a
do
useradd $i
echo "123" | passwd --stdin $i
done
二、while循环语句
1. 作用及结构
- 重复测试某个条件,只要条件成立则反复执行
格式:
while 条件测试操作
do
命令xulie
done
2. 应用实例
2.1 批量添加用户
- 用户名称以ryu开头,按数字顺序进行编号
- 一共添加10个用户,即ryu1、ryu2、…、ryu10
- 初始密码均设为123
#!/bin/bash
i=1
while [ $i -le 10 ]
do
useradd ryu$i
echo "123" | passwd --stdin ryu$i
let i++
done
2.2 猜商品价格游戏
- 通过变量RANDOM获得随机数
- 提示用户猜测并记录次数,猜中后退出循环
price=$[$RANDOM % 1000]
a=0
num=0
echo "猜猜商品价格是多少"
while [ $a = 0 ]
do
let num++
read -p "请输入你猜的价格:" b
if [ $b = $price ];then
echo "恭喜,你猜对了!"
let a++
elif [ $b -gt $price ];then
echo "你猜大了!"
elif [ $b -lt $price ];then
echo "你猜小了!"
fi
done
echo "你总共猜了 $num 次。"
三、until循环语句
1. 作用及结构
- 重复测试某个条件,只要条件不成立则反复执行
格式:
until 条件测试操作
do
命令xulie
done
2. 应用实例
通过循环累加的方式计算1到50的和
#!/bin/bash
num=0
i=0
until (($i>50))
do
num=$[$num + $i]
let i++
done
echo $num