shell脚本实现九九乘法表
程序员文章站
2024-02-19 19:07:10
...
当初学习shell脚本做的一个练习题。
简单版本
99.sh
#!/bin/bash
# ----------------------
# 九九乘法表
# ----------------------
echo "==== 九九乘法表 ===="
i=1
while(( $i<=9 ))
do
j=1
while(( $j<=$i ))
do
printf "%s*%s=%-2s " $i $j `expr $i \* $j`
let "j++"
done
printf "\n"
let "i++"
done
执行后,打印:
==== 九九乘法表 ====
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
加强版本
可输入1~9,打印对应的乘法表,输入0退出。
99_2.sh
#!/bin/bash
# ----------------------
# 九九乘法表
# ----------------------
fun99(){
i=1
while(( $i<=$1 ))
do
j=1
while(( $j<=$i ))
do
printf "%s*%s=%-2s " $i $j `expr $i \* $j`
let "j++"
done
printf "\n"
let "i++"
done
}
echo "==== 九九乘法表 ===="
echo "输入0退出"
while :
do
printf "请输入 1 到 9 之间的数字:"
read num
# 下面这句等同于:expr 1 "+" $num &> /dev/null
expr 1 "+" $num > /dev/null 2>&1
if test $? -gt 0
then
echo "输入错误"
continue
fi
if test $num -eq 0
then
echo "游戏结束!"
break
fi
if test $[num] -lt 1
then
echo "你输入的数字小于 1,请重新输入"
continue
fi
if test $[num] -gt 9
then
echo "你输入的数字大于 9,请重新输入"
continue
fi
fun99 $num
done
打印内如如下:
输入0退出
请输入 1 到 9 之间的数字:6
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
请输入 1 到 9 之间的数字:7
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
请输入 1 到 9 之间的数字:0
游戏结束!
下一篇: Maven多环境配置