一、for循环
for循环:读取不同的变量,用来逐个执行同一命令
for循环的几种使用方式:
第一种:
for i in 1 2 3或for i in {1..3}
do
命令序列
done
第二种:
for i in `seq 3` #3表示取值为1-3
do
命令序列
done
第三种:
for ((i=1;i<=3;i++)) #i=1表示第一次取值为1;i<=3表示循环到3时结束循环;i++表示每次循环加1
do
命令序列
done
实例
#!/bin/bash
#ping网段网址
for ((i=1;i<256;i++))
do
ping -c 1 192.168.238.$i &>/dev/null
if [ $? -eq 0 ];then
echo "通"
else
echo "不通"
fi
done
二、while循环
while循环:重复测试某个条件,只要条件成立则反复执行
while true或while : #死循环
do
命令序列
break #退出当前循环
continue #退出当先流程,不执行后面的内容,开始循环前面的内容
exit #执行一次后直接退出脚本,但不执行结束符后的内容。后面可以跟指定返回码
done
实例
#!/bin/bash
#求100内的偶数和
i=1
sum=0
while [ $i -le 100 ]
do
if [ $((i%2)) -eq 0 ];then
let sum=$i+$sum
fi
let i++
done
echo $sum
三、until循环
until循环:重复测试某个条件,只要条件不成立反复执行
until false #死循环,返回状态值固定为1
do
命令序列
done
四、实验
#!/bin/bash
#打印出三个数1,2,3的所有三位数的组合
for ((q=1;q<=3;q++))
do
for ((w=1;w<=3;w++))
do
for ((e=1;e<=3;e++))
do
echo -n $""$q""$w""$e" "
done
done
echo
done
#!/bin/bash
#制作99乘法表
num=0
for ((i=1;i<10;i++))
do
for ((j=1;j<=$i;j++))
do
num=$(($i*$j))
echo -n -e "$j*$i=$num\t "
done
echo
done
#!/bin/bash
#创建等腰三角形
read -p "请确认等腰三角的结构:" num
for i in `seq $num`
do
for ((j=$num;j>i;j--))
do
echo -n " "
done
for l in `seq $i`
do
echo -n "* "
done
echo
done