zoukankan      html  css  js  c++  java
  • 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	"      #输出格式
     11                 fi
     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	"
     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
    # cat 99.sh
    #!/bin/bash
    awk 'BEGIN{
            for(i=1;i<=9;i++)
            {
                    for(j=1;j<=i;j++)
                            printf" %d*%d=%-2d ",j,i,j*i ####用%-2d使输出的更美观.
                     print
            }
    
    }'
     
  • 相关阅读:
    [转] zigbee的低功耗
    手机显示电量原理
    TinyOS总结(一)
    KingPaper初探redist 之redis设置分析
    KingPaper初探redis之redis在window xp下的安装
    Web开发必知的八种隔离级别
    目前国内著名的维客(wiki)网站
    SSH Secure Shell Client
    Java线程:volatile关键字
    JDK1.6(JDK6.0) 新特性
  • 原文地址:https://www.cnblogs.com/MR-ws/p/11097877.html
Copyright © 2011-2022 走看看