shell脚本-----99乘法表过程解析

shell脚本—小练习之99乘法表

零碎碎的知识点

  1. echo
    echo -n :取消换行
    echo -e :启用反斜杠转义的解释
    \t:横向制表
    \v:纵向制表
  2. shell脚本 for循环嵌套语法
  for  i(变量)  in { 参数a..参数b}
           do 
           for j(变量)  in {参数c..参数d}
           do   
           任务
           done
           done

思路?????

步骤一:
99乘法表中开始为1x1=1,最后的值为 9x9=81,所以需要两个变量i,j。且i和j的值由1都变为i,并且做了乘法运算。

#!/bin/bash
#99
for i in {1..9}
do
    for  j in {1..9}
    do
       echo  "$i*$j=$[i*j]"
    done
done

在这里插入图片描述执行结果,不是我们想要的。首先运算结果上有很多冗余数据,其次显示视图不符合要求。
步骤二:删除冗余数据
分析可知,冗余数据出现在每次i都循环了9次。如果使得j<=i时,便不会出现冗余数据

#!/bin/bash
#99
for i in {1..9}
do
    for  j in {1..9}
    do

       if [ $j -le $i ];then
       echo  "$j*$i=$[i*j]"
       fi
    done
done 

在这里插入图片描述
由执行结果可以看出,冗余数据已经被删除。但是结果并未分为9行。
步骤三:分行处理,只需要在内层循环结束时,输出一个空行。

#!/bin/bash
#99
for i in {1..9}
do
    for  j in {1..9}
    do

       if [ $j -le $i ];then
       echo  "$j*$i=$[i*j]"
       fi
    done
echo
done

在这里插入图片描述由图可知,目前分行已经基本ok,但是我们希望每一列数能单独在一行,而不是分为好几行。
步骤四:取消每次循环换行 echo -n

#!/bin/bash
#99
for i in {1..9}
do
    for  j in {1..9}
    do

       if [ $j -le $i ];then
       echo -n  "$j*$i=$[i*j]"
       fi
    done
echo
done

在这里插入图片描述由图可知,基本上已经实现了我们的需求。但是看起来仍不太美观。
步骤五:echo -e \t。加入制表符,使结果更加美观。空格也可以,但是会出现不能对齐的效果。

#!/bin/bash
#99
for i in {1..9}
do
    for  j in {1..9}
    do

       if [ $j -le $i ];then
       echo -n  -e  "$j*$i=$[i*j]\t"
       fi
    done
echo
done

在这里插入图片描述至此我们的99乘法表制作完成,谢谢观看。

  • 10
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值