多层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