昔我往矣

Bash之天干地支

2012年03月18日

话说,无论高级语言,脚本语言还是低级语言,循环语句,判断语句都是不可缺少的成分。下面就来看看使用Bash编写的九九乘法表和天干地支表。
闲话少叙,小二,上代码!!!

一、Bash之九九乘法表:双层for循环的嵌套

#!/bin/bash
#1*1 -------> 9*9

i=0
j=0
for i in {1..9}
    do  
    for j in `seq 1 $i`      #此处是形成梯形排列的关键,请注意
        do  
        echo -n $j*$i = `expr $i \* $j`
        echo -n "  " 
    done
    echo 
done

二、Bash之天干地支表
数组的完美应用

#!/bin/bash
#----------------天干地支--------------------------

tiangan=(甲 乙 丙 丁 戊 己 庚 辛 壬 癸)
dizhi=(子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥)

declare -i i j 
for((i=0; i<=59; i=i+1))
do
    echo -n ${tiangan[`expr $i % 10`]}${dizhi[`expr $i % 12`]}
    echo -n ' '
    j=`expr $i % 10`              #此处的取余十分精妙,作者实在忍不住要自恋一下
    if [ $j -eq 9 ] ; then 
        echo ' ' 
    fi    
done

之前用while双层循环写九九乘法表,一直有毛病,今天忽而豁然开朗,再贴一段九九乘法表的代码。

#!/bin/bash
#while jiujiuchenfabiao 

declare -i i=1
declare -i j=1
declare -i k=0

while (( i<=9 ));
do
        let j=1         #之前就死在少了这句话,所以循环不对。诸位看官,以某为鉴,务必戒之!!!
        while (( j<=i ));
        do
                k=$[$i*$j]
                echo -n $j*$i = $k
                echo -n "  "
                let j++
        done
        echo ""
        let i++
done

在送上一张美图供大家欣赏

今日功德圆满矣。

当前暂无评论 »

添加新评论 »