使用shell脚本打印菱形和乘法表——初学者必看!!!

一、使用符号数字制作菱形

#!/bin/bash
for((i=9;i>0;i--));do
  for((a=1;a<=$i;a++));do
    echo -n " "
  done
  for((b=9;b>=$i;b--));do
    echo -n "$i"
  done
  for((c=8;c>=$i;c--));do
    echo -n "$i"
  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 "$i"
  done
  for((c=8;c>=$i;c--));do
    echo -n "$i"
  done
echo ""
done
         9
        888
       77777
      6666666
     555555555
    44444444444
   3333333333333
  222222222222222
 11111111111111111
  222222222222222
   3333333333333
    44444444444
     555555555
      6666666
       77777
        888
         9

二、使用符号“ * ”制作菱形

#!/bin/bash
for((i=9;i>0;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 "*"
  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 "*"
  done
echo ""
done

        *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
  ***************
   *************
    ***********
     *********
      *******
       *****
        ***
         *

三、打印空心菱形

#!/bin/bash
for((i=1;i<=6;i++));do
  for((a=6;a>=$i;a--));do
    echo -n "*"
  done
  for((b=1;b<=$i;b++));do
    echo -n " "
  done
  for((c=1;c<=$i;c++));do
    echo -n " "
  done
  for((d=6;d>=$i;d--));do
    echo -n "*"
  done
echo ""
done

for((i=1;i<=6;i++));do
  for((a=1;a<=$i;a++));do
    echo -n "*"
  done
  for((b=6;b>=$i;b--));do
    echo -n " "
  done
  for((c=6;c>=$i;c--));do
    echo -n " "
  done
  for((d=1;d<=$i;d++));do
    echo -n "*"
  done

echo ""
done
******  ******
*****    *****
****      ****
***        ***
**          **
*            *
*            *
**          **
***        ***
****      ****
*****    *****
******  ******

四、使用两个九九乘法表

#!/bin/bash
n=32
d=4
for ((i=1;i<=9;i++))
do
  for ((k=$n;k>$i;k--))
  do
   echo -n " "
  done
 for ((j=1;j<=$i;j++))
 do
 echo -n ""$j"x$i=$(expr $i \* $j) "
 if [ $i -eq $j ];then
 echo -e '\n'
 fi
 done
let n-=3
done

for ((a=8;a>=1;a--))
do
  for ((b=$d;b>1;b--))
  do
   echo -n " "
  done
 for ((c=1;c<=$a;c++))
 do
 echo -n ""$c"x$a=$(expr $c \* $a) "
 if [ $c -eq $a ];then
 echo -e '\n'
 fi
 done
let d+=4
done
                               1x1=1 

                           1x2=2 2x2=4 

                       1x3=3 2x3=6 3x3=9 

                   1x4=4 2x4=8 3x4=12 4x4=16 

               1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 

           1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 

       1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 

   1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 

1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 

   1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 

       1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 

           1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 

               1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 

                   1x4=4 2x4=8 3x4=12 4x4=16 

                       1x3=3 2x3=6 3x3=9 

                           1x2=2 2x2=4 

                               1x1=1 

猜你喜欢

转载自blog.csdn.net/m0_46563938/article/details/108224076