技术与生活 / 一篇记录
几个固定选项,用 case 比嵌套 if 清楚
固定选项可以通过 case 表达,比分散的条件判断更容易检查。
启动、停止、帮助这类有限集合,可以把每个选项的行为放在一个相邻分支中。这样既方便审查支持范围,也容易发现默认路径是否遗漏了输入。
操作与观察
以下示例使用 Bash,请在独立测试目录中理解输入、输出和退出码。
case "${1:-help}" in start) echo start;; stop) echo stop;; *) echo help;; esac
分别输入已知选项与未知选项,检查默认分支。
测试正常选项、空参数和拼错的选项。未知选项最好给出用法并返回明确状态,避免把用户输入错误当成任务已经执行完成。
当某个选项需要参数时,case 只负责分派,不会自动完成值校验。空值、非法路径和多余参数仍应明确处理。帮助信息中列出的选项,也要与实际支持的分支保持一致。
别遗漏这条边界
必须为未知输入设置清晰的处理方式。
参考:Shell 文档。