Skip to content

九九乘法表生成器

约 1445 字大约 5 分钟

Shell基础工具教学演示

2024-10-16

一个简单实用的 Shell 脚本,在终端输出经典三角形格式的九九乘法表。

功能说明

这个脚本可以快速生成并显示九九乘法表,主要特性:

  • 🎯 经典三角形格式 - 左下三角形显示,符合传统习惯
  • 📐 自动对齐 - 使用 printf 格式化输出,保持整齐美观
  • 即开即用 - 无需任何依赖,直接运行
  • 💡 代码简洁 - 适合学习 Shell 脚本的基础示例

输出效果

运行脚本后会输出如下格式的乘法表:

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

环境要求

运行环境

  • 操作系统: Linux / macOS / WSL(Windows Subsystem for Linux)
  • Shell: Bash 4.0+

依赖项

无需额外依赖,使用 Bash 内置功能即可运行。

安装方法

方式一:直接下载

# 下载脚本
wget https://cnb.cool/merma/ScriptsHub/-/raw/main/scripts/shell/multiplication_table.sh

# 添加执行权限
chmod +x multiplication_table.sh

方式二:使用 curl

# 下载脚本
curl -O https://cnb.cool/merma/ScriptsHub/-/raw/main/scripts/shell/multiplication_table.sh

# 添加执行权限
chmod +x multiplication_table.sh

方式三:克隆仓库

git clone https://cnb.cool/merma/ScriptsHub.git
cd ScriptsHub/scripts/shell
chmod +x multiplication_table.sh

方式四:手动创建

直接复制下方的脚本源码,创建文件并保存。

使用方法

基本用法

# 运行脚本
./multiplication_table.sh

或者:

# 使用 bash 命令运行
bash multiplication_table.sh

输出到文件

# 保存到文本文件
./multiplication_table.sh > multiplication_table.txt

# 查看保存的文件
cat multiplication_table.txt

在其他脚本中调用

#!/bin/bash

echo "生成九九乘法表:"
echo "=================="
./multiplication_table.sh
echo "=================="

脚本源码

点击展开查看完整源码
#!/bin/bash

# 99乘法表脚本

for i in {1..9}; do
    for j in {1..9}; do
        # 只打印 j <= i 的部分,形成三角形式的乘法表(经典格式)
        if [ $j -le $i ]; then
            # 使用 printf 格式化输出,保持对齐
            printf "%d*%d=%-2d " $j $i $((j * i))
        fi
    done
    echo # 换行
done

在 CNB 查看: multiplication_table.sh

代码解析

核心逻辑

for i in {1..9}; do          # 外层循环:行数(1-9)
    for j in {1..9}; do      # 内层循环:列数(1-9)
        if [ $j -le $i ]; then   # 只打印 j <= i 的部分(三角形)
            printf "%d*%d=%-2d " $j $i $((j * i))  # 格式化输出
        fi
    done
    echo                     # 每行结束后换行
done

关键技术点

  1. 嵌套循环

    • 外层循环控制行(被乘数)
    • 内层循环控制列(乘数)
  2. 条件判断

    • if [ $j -le $i ] 确保只打印下三角部分
    • 形成经典的阶梯式乘法表
  3. 格式化输出

    • printf "%d*%d=%-2d "
    • %-2d 左对齐,保留2位宽度
    • 空格分隔每个乘法式
  4. 算术运算

    • $((j * i)) 计算乘积

使用场景

  • 📚 教学演示 - 帮助学习乘法表或 Shell 编程
  • 🎓 学习材料 - 作为 Shell 脚本入门示例
  • 🖨️ 快速参考 - 需要查看乘法表时快速生成
  • 🔧 模板参考 - 学习嵌套循环和格式化输出

扩展功能

你可以基于这个脚本进行扩展:

示例 1: 自定义范围

#!/bin/bash
# 支持自定义乘法表范围

MAX=${1:-9}  # 默认为9,可通过参数指定

for i in $(seq 1 $MAX); do
    for j in $(seq 1 $MAX); do
        if [ $j -le $i ]; then
            printf "%d*%d=%-3d " $j $i $((j * i))
        fi
    done
    echo
done

使用方法:

./multiplication_table_custom.sh 12  # 生成12x12乘法表

示例 2: 完整矩形格式

#!/bin/bash
# 完整的9x9矩形乘法表

for i in {1..9}; do
    for j in {1..9}; do
        printf "%d*%d=%-2d " $j $i $((j * i))
    done
    echo
done

示例 3: 添加颜色

#!/bin/bash
# 带颜色的乘法表

for i in {1..9}; do
    for j in {1..9}; do
        if [ $j -le $i ]; then
            # 使用 ANSI 颜色代码
            printf "\033[1;32m%d*%d=%-2d\033[0m " $j $i $((j * i))
        fi
    done
    echo
done

注意事项

提示

  • 脚本在大多数 Linux 发行版和 macOS 上可以直接运行
  • Windows 用户需要使用 WSL 或 Git Bash
  • 确保使用 Bash(不是 sh),因为脚本使用了 Bash 特有的语法

兼容性

  • {1..9} 语法需要 Bash 3.0+
  • 如果使用较老的 sh,请使用 seq 命令:$(seq 1 9)

常见问题

Q: 在 Windows 上可以运行吗?

A: 可以,但需要:

  1. 安装 WSL(Windows Subsystem for Linux)
  2. 使用 Git Bash
  3. 使用 Cygwin

Q: 如何修改输出格式?

A: 修改 printf 格式字符串:

  • %-2d 改为 %-3d 增加宽度
  • 调整空格数量改变间距
  • 添加其他分隔符

Q: 运行提示 "Permission denied" 怎么办?

A: 需要添加执行权限:

chmod +x multiplication_table.sh

Q: 可以生成其他范围的乘法表吗?

A: 可以!修改 {1..9} 为其他范围,例如:

  • {1..12} 生成 12x12 乘法表
  • {5..9} 生成 5-9 的乘法表

学习价值

这个脚本虽然简单,但包含了 Shell 编程的多个重要概念:

  1. ✅ 循环结构(for 循环)
  2. ✅ 条件判断(if 语句)
  3. ✅ 算术运算
  4. ✅ 格式化输出(printf)
  5. ✅ 变量使用

非常适合作为 Shell 脚本入门的学习材料!

更新日志

v1.0.0 (2024-10-16)

  • ✨ 初始版本发布
  • 📐 实现经典三角形格式输出
  • 💡 代码简洁清晰,适合学习

相关资源

许可证

MIT License


提示: 这是一个教学向的基础脚本,欢迎在此基础上进行修改和扩展!