for ((i=9;i>0;i--));do
for ((j=1;j<$i+1;j++));do
echo -en ""$j""x""$i"=$(($j*$i))\t"
done
printf "\n"
done
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
注意的点:
之所以用$j*$i,由于横看都是前一位在不断的加一,i在 外循环必须在内循环结束过后,i才加一,所以这样写很 简便的表达出来
echo 不加-n参数时,每输出一个表达式时,默认换行,加上-n参数 根据这里示例情况,是一个内循环结束后才换行,输出想要的效果。