Shell脚本双重循环的使用(例正方形、三角形、菱形、99乘法表)

正方形

[root@localhost ~]# vi zfx.sh
#!/bin/bash
#正方形
for ((i=1;i<=5;i++))
do
  for ((j=1;j<=5;j++))
  do
  echo -n "# "
  done
  echo
done
[root@localhost ~]# chmod +x zfx.sh //赋予执行权限
[root@localhost ~]# ./zfx.sh //执行脚本
# # # # # 
# # # # # 
# # # # # 
# # # # # 
# # # # # 

直角三角形

[root@localhost ~]# vi zjsjx.sh
#!/bin/bash
#直角三角形
for ((i=1;i<=9;i++))
do
    for ((j=1;j<=$i;j++))
    do
      echo -n "# "
    done
    echo
done
[root@localhost ~]# chmod +x zjsjx.sh 
[root@localhost ~]# ./zjsjx.sh 
# 
# # 
# # # 
# # # # 
# # # # # 
# # # # # # 
# # # # # # # 
# # # # # # # # 
# # # # # # # # # 

反向直角三角形

[root@localhost ~]# vi fzjsjx.sh
#!/bin/bash
#反直角三角形
for ((i=1;i<=9;i++))
do
   for ((j=0;j<$i;j++))
   do
   echo -n " "
   done
    for ((k=10-$j;k>0;k--))
    do
    echo -n "#"
    done
echo
done
[root@localhost ~]# chmod +x fzjsjx.sh 
[root@localhost ~]# ./fzjsjx.sh 
 #########
  ########
   #######
    ######
     #####
      ####
       ###
        ##
         #

等腰三角形

[root@localhost ~]# vi dysjx.sh
#!/bin/bash
#等腰三角形
for ((i=1;i<10;i++))
do
   for ((n=10;n>=i;n--))
   do
      echo -n " "
   done
      for ((m=1;m<=i;m++))
      do
         echo -n "# "
      done
   echo
done
[root@localhost ~]# chmod +x dysjx.sh 
[root@localhost ~]# ./dysjx.sh 
          # 
         # # 
        # # # 
       # # # # 
      # # # # # 
     # # # # # # 
    # # # # # # # 
   # # # # # # # # 
  # # # # # # # # # 

菱形

[root@localhost ~]# vi lx.sh
#!/bin/bash
#菱形
read -p "请输入菱形长度" len
for i in `seq 1 $len`
do
   for ((j=$len-1;j>=$i;j--))
   do
      echo -n " "
   done
   for ((m=1;m<=$i;m++))
   do
      echo -n "# "
   done
   echo
done
for i in `seq 1 $len`
do
   for ((j=1;j<=$i;j++))
   do
      echo -n " "
   done
   for ((n=$len-1;n>=$i;n--))
   do
      echo -n "# "
   done
   echo
done
[root@localhost ~]# chmod +x lx.sh 
[root@localhost ~]# ./lx.sh 
请输入菱形长度5
    # 
   # # 
  # # # 
 # # # # 
# # # # # 
 # # # # 
  # # # 
   # # 
    # 

99乘法表(递增)

[root@localhost ~]# vi 99.sh
#!/bin/bash
#99乘法表
for ((i=1;i<=9;i++))
do
  for ((j=1;j<=i;j++))
  do
     echo -ne "$i*$j=$((i*j)) \t"
  done
  echo
done
[root@localhost ~]# chmod +x 99.sh 
[root@localhost ~]# ./99.sh 
1*1=1 	
2*1=2 	2*2=4 	
3*1=3 	3*2=6 	3*3=9 	
4*1=4 	4*2=8 	4*3=12 	4*4=16 	
5*1=5 	5*2=10 	5*3=15 	5*4=20 	5*5=25 	
6*1=6 	6*2=12 	6*3=18 	6*4=24 	6*5=30 	6*6=36 	
7*1=7 	7*2=14 	7*3=21 	7*4=28 	7*5=35 	7*6=42 	7*7=49 	
8*1=8 	8*2=16 	8*3=24 	8*4=32 	8*5=40 	8*6=48 	8*7=56 	8*8=64 	
9*1=9 	9*2=18 	9*3=27 	9*4=36 	9*5=45 	9*6=54 	9*7=63 	9*8=72 	9*9=81 	

99乘法表(全)

[root@localhost ~]# vi 992.sh
#!/bin/bash
#99乘法表全
for ((i=1;i<=9;i++))
do
  for ((j=1;j<=9;j++))
  do
     echo -ne "$i*$j=$((i*j)) \t"
  done
  echo
done
[root@localhost ~]# chmod +x 992.sh 
[root@localhost ~]# ./992.sh 
1*1=1 	1*2=2 	1*3=3 	1*4=4 	1*5=5 	1*6=6 	1*7=7 	1*8=8 	1*9=9 	
2*1=2 	2*2=4 	2*3=6 	2*4=8 	2*5=10 	2*6=12 	2*7=14 	2*8=16 	2*9=18 	
3*1=3 	3*2=6 	3*3=9 	3*4=12 	3*5=15 	3*6=18 	3*7=21 	3*8=24 	3*9=27 	
4*1=4 	4*2=8 	4*3=12 	4*4=16 	4*5=20 	4*6=24 	4*7=28 	4*8=32 	4*9=36 	
5*1=5 	5*2=10 	5*3=15 	5*4=20 	5*5=25 	5*6=30 	5*7=35 	5*8=40 	5*9=45 	
6*1=6 	6*2=12 	6*3=18 	6*4=24 	6*5=30 	6*6=36 	6*7=42 	6*8=48 	6*9=54 	
7*1=7 	7*2=14 	7*3=21 	7*4=28 	7*5=35 	7*6=42 	7*7=49 	7*8=56 	7*9=63 	
8*1=8 	8*2=16 	8*3=24 	8*4=32 	8*5=40 	8*6=48 	8*7=56 	8*8=64 	8*9=72 	
9*1=9 	9*2=18 	9*3=27 	9*4=36 	9*5=45 	9*6=54 	9*7=63 	9*8=72 	9*9=81 	

猜你喜欢

转载自blog.csdn.net/weixin_49343462/article/details/109529111
今日推荐