Shell脚本实现99乘法表:详解与进阶252
大家好,我是你们的Shell编程知识博主!今天我们来学习一个经典的编程练习题——用Shell脚本打印99乘法表。虽然看似简单,但其中蕴含着Shell编程的许多基本技巧,例如循环控制、字符串处理和格式输出等。掌握了这些技巧,你就能更好地应对更复杂的Shell脚本编写。本文将从基础到进阶,详细讲解如何使用Shell脚本生成99乘法表,并分析不同实现方法的优劣。
首先,让我们来看一个最基本的实现方法,使用嵌套循环: ```bash
#!/bin/bash
for i in {1..9}; do
for j in {1..9}; do
printf "%2d*%2d=%3d\t" $i $j $((i*j))
done
echo ""
done
```
这段代码的核心在于两个嵌套的`for`循环。外层循环控制行数(从1到9),内层循环控制列数(从1到9)。`printf`命令用于格式化输出,`%2d`表示输出一个宽度为2的十进制整数,`%3d`表示输出一个宽度为3的十进制整数,`\t`表示制表符,用于在数字之间添加空格,使输出对齐。`$((i*j))` 使用算术扩展计算乘积。 `echo ""` 在每一行结束后换行。
这个方法简洁明了,易于理解,是初学者学习Shell脚本的绝佳示例。但是,它的输出格式相对固定,可定制性较弱。如果我们需要改变乘法表的样式,例如调整数字之间的间距或使用不同的符号,就需要修改代码。
接下来,让我们改进一下,增加一些可定制性: ```bash
#!/bin/bash
# 设置乘法表的大小
size=9
# 设置列数
cols=9
# 计算行数
rows=$((size / cols + (size % cols > 0)))
for i in $(seq 1 $size); do
for j in $(seq 1 $cols); do
product=$((i * j))
if [[ $j -le $i ]] && [[ $product -le size * cols ]]; then
printf "%3d\t" $product
fi
done
echo
if (( $(($i % cols)) == 0 || $i == $size)); then
echo
fi
done
```
这段代码引入了变量`size`和`cols`来控制乘法表的大小和列数。这使得我们可以轻松地调整乘法表的样式。我们使用了`seq`命令生成数字序列,使得代码更简洁。同时,加入了条件判断,只在 `j
2025-05-14
Perl数字补齐与格式化:告别凌乱,打造专业数据呈现
https://jb123.cn/perl/73480.html
Perl `quotemeta` 深度解析:正则表达式字面量匹配的守护神与安全实践
https://jb123.cn/perl/73479.html
Python3驱动编程:构建自动化大脑,连接万物系统核心实践
https://jb123.cn/python/73478.html
深度解析JavaScript:如何优雅地控制表单与元素的只读状态
https://jb123.cn/javascript/73477.html
Python算法精讲:核心概念、常见实现与性能优化
https://jb123.cn/python/73476.html
热门文章
脚本编程与测试编程的区别
https://jb123.cn/jiaobenbiancheng/24289.html
脚本是编程吗?揭秘两者之间的关系
https://jb123.cn/jiaobenbiancheng/23721.html
VBA 编程做脚本:自动化 Office 任务和流程
https://jb123.cn/jiaobenbiancheng/20853.html
脚本编程和测试:全面指南
https://jb123.cn/jiaobenbiancheng/12285.html
脚本编程范例:自动化任务、节省时间和精力
https://jb123.cn/jiaobenbiancheng/8330.html