补全:把结果格式定下来
结果有时打 37.0,有时打 98.60000000000001,看着不像个产品。补全 fmt:最多保留两位小数,去掉多余的尾零。输出三个数(用 / 拼)。
阅读更多 →
补全:让 main 交回退出码
main 现在不管成败都交回 0。按约定改成:成功 0、缺参数 2、单位不认识 3。输出三次调用的退出码(用 / 拼)。
阅读更多 →
补全:把报错送进另一条管道
现在报错和结果混在同一条管道里。把两句提示改成打到 err(它扮演 stderr),让结果管道里只剩数字。成功那次会顺带打出 err 里攒了几行。
阅读更多 →
两条管道各接到了什么
下面这段程序用两个缓冲区模拟 stdout 和 stderr:结果进 out,提示进 err。运行它,看两条管道各接到几行、退出码是多少: import io out, err = io.Strin
阅读更多 →
非零退出码怎么分
结果和报错挤进同一条管道 工具打出 下游程序 conv 里定了三个错误码:用法错 2、不认识的单位 3、文件不存在 4。这样区分的用处是【0】。
阅读更多 →
退出码几算成功
结果和报错挤进同一条管道 工具打出 下游程序 按 Unix 的约定,一个命令行工具正常完成任务时,退出码应该是【0】。
阅读更多 →
结果和报错为什么分两条路
工具把换算结果打到标准输出,把错误信息打到标准错误。这样分开,最直接的好处是【0】。
阅读更多 →
补全:给长度加 --from
长度换算还缺一个起点单位。补上 --from 选项(存到属性 src,默认 m),并让 length 用上它,输出 3 km 换成 m、5000 m 换成 km 的结果。
阅读更多 →
补全:按子命令分发
解析已经做好,两个子命令都能认。补全 run:按 a.cmd 决定调哪个换算函数,输出两次调用的结果(用 / 拼)。
阅读更多 →
补全:加上第二个子命令
解析器已经有了 temp。补上 len 子命令:一个 value 位置参数(浮点数)和一个默认值为 m 的 --to 选项,让最后一行打出两次解析的目标单位。
阅读更多 →