一、for循环:
1.for循环结构:
for 已知循环次数
for tlj(变量) 循环次数(取值列表)
do
需要循环的事件
done
2.脚本案例:
2.1 从1累加到100:
#!/bin/bash
i=1
sum=0
for i in {1..100}
do
sum=$(expr $sum + $i)
done
echo $sum
2.2 累加1到100的偶数:
#!/bin/bash
sum=0
i=0
for i in $(seq 0 2 100)
do
sum=$(expr $i + $sum)
done
echo $sum
2.3 九九乘法表:
#!/bin/bash
for j in {1..9}
do
for i in $(seq $j)
do
echo -e "${i}*${j}=$[$i*$j] \t\c"
done
echo
done
2.4 批量创建用户:
#!/bin/bash
for i in {1..10}
do
useradd wzw${i}
echo "123123"| passwd --stdin wzw${i}
done
二、while循环:
1.while循环结构:
重复测试某个条件,只要条件成立则反复执行
格式:
while [ 条件测试操作 ]
do #do代表循环的开始
判断式/命令序列
done #done代表循环的结束
2.脚本案例:
2.1 猜价格:
#!/bin/bash
a=$(echo $[RANDOM%1000+1])
while true
do
read -p "输入猜测的价格:" jg
i=0
if [ $jg -eq $a ]
then
let i++
echo "恭喜你猜对了"
exit
elif [ $jg -gt $a ]
then
echo "猜高了"
else
echo "猜低了"
fi
done
2.2 给用户发消息:
#!/bin/bash
while true
do
read -p "输入发送人:" aa
read -p "输入发送内容:" cc
id $aa
if [ $? -eq 0 ]
then
bb=$(w | grep -o "$aa")
if [ $aa = $bb ]
then
echo "用户在线,正在发送"
echo "$cc" | write $aa &>/dev/null
if [ $? -eq 0 ]
then
echo "发送成功"
exit 0
else
echo "发送失败,请重新输入"
fi
else
echo "用户不在线"
exit 2
fi
else
echo "用户不存在,请重新输入"
fi
done
三、until循环:
重复测试某个条件,只要条件不成立则反复执行
格式:
until [ 条件测试操作 ]
do
判断式/命令序列
done
四、嵌套循环continue,break,exit:
4.1 continue:
continue中止某次循环中的命令,但不会完全中止整个命令
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then
continue
fi
echo "i=$i"
done
4.2 break:
当满足条件的情况下break会跳出当前循环体
break后面加数字代表跳出几层
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then break
fi
echo i=$i
done
4.3 exit:
满足条件exit会直接退出当前脚本