多层for循环、while示例
一、打印九九乘法表
[root@localhost opt]# vim 99chengfabiao.sh
for ((i=1; i<=9; i++))
do
for ((j=1; j<=$i; j++))
do
let sum=i*j
echo -n -e "$j*$i=$sum\t"
done
echo ""
done
二、打印直线
2.1 for写法
root@localhost opt]# vim forzhixian.sh
for ((a=1;a<=20;a++))
do
echo -n "*"
done
echo ""
2.2 while写法
[root@localhost opt]# vim whilezhixian.sh
a=1
while [ $a -le 20 ]
do
echo -n "*"
let a++
done
echo ""
三、矩形
3.1 for写法
[root@localhost opt]# vim forjuxing.sh
for ((a=1;a<=9;a++))
do
for ((b=1;b<=9;b++))
do
echo -n "*"
done
echo ""
done
3.2 while写法
[root@localhost opt]# vim whilejuxing.sh
a=1
while [ $a -le 9 ]
do
b=1
while [ $b -le 9 ]
do
echo -n "*"
let b++
done
echo ""
let a++
done
四、正直角三角形
4.1 for写法
[root@localhost opt]# vim forzhengzhijiaosanjiaoxing.sh
for ((a=1;a<=9;a++))
do
for ((b=1;b<=$a;b++))
do
echo -n "*"
done
echo ""
done
4.2 while写法
[root@localhost opt]# vim whilezhengzhijiaosanjiaoxing.sh
a=1
while [ $a -le 9 ]
do
b=1
while [ $b -le $a ]
do
echo -n "*"
let b++
done
echo ""
let a++
done
五、倒直角三角形
5.1 for写法
[root@localhost opt]# vim fordaozhijiaosanjiaoxing.sh
for ((a=1;a<=9;a++))
do
for ((b=9;b>=$a;b--))
do
echo -n "*"
done
echo ""
done
六、反直角三角形
[root@localhost opt]# vim fanzhijiaosanjiaoxing.sh
for ((a=1;a<=9;a++))
#打印一个空的倒三角形
do
for ((b=9;b>=$a;b--))
do
echo -n " "
done
#打印一个带*的三角形
for ((c=1;c<=$a;c++))
do
echo -n "*"
done
echo ""
done
七、等腰三角形
[root@localhost opt]# vim dengyaosanjiaoxing.sh
for ((a=1; a<=9; a++))
do
#输出空倒三角
for ((b=9; b>=$a; b--))
do
echo -n " "
done
#输出实心正三角
i=$[($a*2)-1]
#输出*号
for h in $(seq 1 $i)
#for ((h=1; h<=$i; h++))
do
echo -n "*"
done
echo ""
done
八、平行四边形
[root@localhost opt]# vim pingxingsibianxing.sh
for ((a=1;a<=6;a++))
do
for ((b=6;b>=$a;b--))
do
echo -n " "
done
for ((c=1;c<=6;c++))
do
echo -n "*"
done
echo ""
done
九、梯形
[root@localhost opt]# vim tixing.sh
for ((a=1;a<=6;a++))
do
for ((b=6;b>=$a;b--))
do
echo -n " "
done
for ((c=1;c<=6+$a;c++))
do
echo -n "*"
done
for ((d=1;d<=$a;d++))
do
echo -n "*"
done
echo ""
done
十、菱形
10.1 for写法
[root@localhost opt]# vim lingxing.sh
echo -n " "
done
for ((b=9; b>=$i; b--))
do
echo -n "*"
done
for ((c=8; c>=$i; c--))
do
echo -n "*"
done
echo ""
done
for ((i=2; i<=9; i++))
do
for ((a=1; a<=$i; a++))
do
echo -n " "
done
for ((b=9; b>=$i; b--))
do
echo -n "*"
done
for ((c=8; c>=$i; c--))
do
echo -n "*"
10.2 while写法
[root@localhost opt]# vim whilelingxing.sh
let i++
done
i=8
while [ $i -ge 1 ]
do
a=9
while [ $a -ge $i ]
do
echo -n " "
let a--
done
b=1
while [ $b -le $i ]
do
echo -n "*"
let b++
done
c=2
while [ $c -le $i ]
do
echo -n "*"
let c++
done
echo ""
let i--
done