shell 、awk两种方法编写9*9法表

在编写前我们需要分析一下都需要什么?

第一种shell方法

1.需要两个数相乘,我们需要两个循环

2.判断以怎样的形式展现出来,我们需要一个if 判断,if判断的不同会影响到最后输出结果的不同

3.输出格式

 1 #!/bin/bash
  2 
  3 for ((i=1;i<=9;i++))                      #通过循环得到第一个数
  4 do
  5         for ((j=1;j<=9;j++))                  #通过这个循环得到第二个数
  6         do
  7                 if [ $i -ge $j ]              #通过if进行判断
  8                 then
  9                         c=$(($i*$j))            #将得到的值赋给变量c
 10                         echo -e -n "$j*$i=$c\t"      #输出格式
 11                 fii
 12         done
 13         echo
 14 done

得到的结果为:

[root@logan day3]# bash 9*9.sh
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

 

如果if 判断使用 -lt 结果会是这样:

 1 #!/bin/bash
  2 
  3 for ((i=1;i<=9;i++))
  4 do
  5         for ((j=1;j<=9;j++))
  6         do
  7                 if [ $i -le $j ]
  8                 then
  9                         c=$(($i*$j))
 10                         echo -e -n "$j*$i=$c\t"
 11                 fi
 12         done
 13         echo
 14 done
~ 
[root@logan day3]# bash 9*9.sh

1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 6*1=6 7*1=7 8*1=8 9*1=9
2*2=4 3*2=6 4*2=8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18
3*3=9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27
4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36
5*5=25 6*5=30 7*5=35 8*5=40 9*5=45
6*6=36 7*6=42 8*6=48 9*6=54
7*7=49 8*7=56 9*7=63
8*8=64 9*8=72
9*9=81

 

 第二种:awk方法

  1 # cat /root//tset/day6/9*9.sh
  2 #!/bin/bash
  3 
  4 awk 'BEGIN{
  5         for(i=1;i<10;i++)
  6         {
  7                 for(j=1;j<=i;j++)
  8                         printf "%d*%d=%-2d ",j,i,j*i        #为了整体的美观,我对输出格式做了适当的调整
  9                 print
 10         }
 11 }'

这样也可以得到我们需要的9*9法表

[root@logan day6]# bash 9*9.sh
1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12 4*4=16 
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

 

posted on 2019-06-21 14:45  loganSxb  阅读(323)  评论(0编辑  收藏  举报