一:while循环语法
while [ condition ] #只有条件为真的时候,while才会循环,条件为假,停止循环
do
commands
done
【条件可以是五种运算中的任意一种】
【例:数学比较】
read -p "Number:" num1
while [ $num1 -gt 0 ]
do
echo "大于"
sleep 3
done
【例:字符串比较】
read -p "login:" account
while [ $account != 'root' ]
do
read -p "login:" account
done
【例:文件比较】
while [ ! -d /tmp/wula ]
do
echo "not found /tem/wula"
sleep 2
done
【例:逻辑运算,丈母娘选女婿】
read -p "money:" money
read -p "car:" car_num
read -p "house:" house
while [ $money -lt 100000 ] || [ $car_nm -lt 1 ] || [ $house -lt 1 ]
do
echo "不行"
read -p "money:" money
read -p "car:" car_num
read -p "house:" house
done
echo "小伙子不错,就是你了"
结果
[root@localhost shell]# bash test8.sh
money:1231231
car:0
house:1
不行
money:123123
car:1
house:1
小伙子不错,就是你了
二:while嵌套
【例:打印1-9,当数值为5时,停止循环】
i=1
while [ $i -lt 10 ]
do
echo $i
if [ $i -eq 5 ];then
break
fi
i=$((i+1))
done
【例:打印1-9,当数值为5时,跳过当前循环】
i=0
while [ $i -lt 10 ]
do
i=$((i+1))
if [ $i -eq 5 ];then
continue
fi
echo $i
done
【例:9*9乘法表】
n=1
while [ $n -lt 10 ];do
for((m=1;m<=$n;m++));do
echo -n -e "$m * $n =$((n*m))\t"
done
echo
n=$((n+1))
done
三:until语法
until语句和while刚好相反,until是条件为假开始执行,条件为真停止
until [ condition ]
do
commands代码块
done
【例:打印10-20之间的数】
num=10
until [ $num -gt 20 ];do
echo $num
num=$((num+1))
done
【while和until接龙,打印1-20】
num=1
while [ $num -lt 10 ];do
echo $num
num=$((num+1))
until [ $num -lt 10 ];do
echo $num
if [ $num -eq 20 ];then
break
fi
num=$(($num+1))
done
done