一.for循环
使用for循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。
1.for循环语句结构
for 变量名 in 取值列表
do
命令序列
done
举例:批量添加用户
1.首先创建一个txt文件,里面内容是要创建的用户名
[root@ns1 ~]# vim useradd.txt
yonghu1
yonghu2
yonghu3
2.创建脚本
[root@ns1 ~]# vim useradd.sh
#!/bin/bash
user=$(cat /root/useradd.txt)
for add in $user
do
useradd $add
done
二.while循环语句结构
while条件测试操作
do
命令序列
done
1.举例:批量添加规律用户
[root@ns1 ~]# vim useradd.sh
#!/bin/bash
user="yonghu"
i=1
while [ $i -le 20 ]
do
useradd ${user}$i
i='expr $i + 1'
done
2.使用while true循环
猜数字游戏
[root@ns1 ~]# vim caishuzi.sh
#!/bin/bash
#产生一个0-99的随机数
p=$(expr $RANDOM%100)
t=0
echo "请在0-99之间猜一个数"
while true
do
read -p "请输入你猜的数:" i
t='expr $t + 1'
if [ $i -eq $p ]
then
echo 恭喜你猜对了,这个数是 $p
echo 你总共猜了 $t 次
break
elif [ $i -gt $p ]
echo 这个数大了
else [ $i -lt $p ]
echo 这个数小了
fi
done
三.case语句的使用
1.case语句的结构
case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
……
*)
默认命令序列
esac
举例:编写一个计算器
[root@ns1 ~]# vim jisuanqi.sh
#!/bin/bash
#xsh 2020.7.30 计算器
while true
do
read -p "请输入第一个数(整数):" n1
read -p "请选择算法(+ - \* /):" s
read -p "请输入第二个数(整数):" n2
case $s in
+)
n=$(expr $n1 $s $n2)
;;
-)
n=$(expr $n1 $s $n2)
;;
\*)
n=$(expr $n1 \* $n2)
;;
/)
n=$(expr $n1 $s $n2)
;;
*)
echo "请输入正确的运算符号"
esac
echo $n
done