象棋游戏提取器:Shell脚本实现与优化
测试与编程原则
在简单情况下,手动测试或许足够,但通常我们应将测试自动化。理想做法是创建三个测试文件,分别测试不同情况,再编写脚本对每个输入调用被测试脚本,并将输出与预期输出文件对比。
然而,测试过程有时比被测试代码更复杂。若测试脚本本身有误,就会陷入“无限嵌套测试”的困境。程序正确性的测试与验证是计算机科学中尚未完全解决的问题,没有万能的方法确保程序正确或检测出所有错误。不过,有一些通用原则:
- 编码前思考问题。
- 编写可独立验证的模块化代码。
- 为代码添加注释,用自然语言描述功能常能发现思维中的错误。
- 让他人审查代码,多人智慧胜一人。
练习19:提取指定游戏
此练习将之前的代码转换为函数,编写完整脚本提取文件中的第N个游戏,N作为脚本参数传入。
1. 定义 read_chunk 函数 :
function read_chunk()
{
while read -r line
do
[[ $1 -eq 1 ]] && echo "$line"
[[ $line =~ $regex_blank ]] && return 0
done
return 1
}
相比之前代码有小改动,使用成功返回码表示读到最后空白行,循环结束则返回非零错误码。
2. 实现游戏提取器 :
超级会员免费看
订阅专栏 解锁全文
72

被折叠的 条评论
为什么被折叠?



