使用 Rust 和 Clap 编写命令行工具
使用 Rust 和 Clap 编写命令行工具
Rust 很适合写命令行工具:启动快、部署简单、类型安全、跨平台表现稳定。配合 Clap,可以快速构建参数清晰、帮助信息完善的 CLI。
一、安装依赖
1 | [dependencies] |
derive 功能可以让我们用结构体声明参数。
二、定义参数
1 | use clap::Parser; |
short 会生成短参数,例如 -n;long 会生成长参数,例如 --name。
三、读取参数
1 | fn main() { |
运行:
1 | cargo run -- --name Rust --times 3 |
Clap 会自动生成帮助信息:
1 | cargo run -- --help |
四、增加子命令
复杂工具通常需要子命令:
1 |
|
然后在主参数中挂载:
1 |
|
五、工程建议
CLI 工具不要把所有逻辑都写在 main.rs。推荐分成三层:
- 参数解析层:负责 Clap 结构体
- 命令分发层:负责匹配子命令
- 业务逻辑层:可单独测试
这样即使以后加配置文件、日志、插件机制,也不会让入口文件变得混乱。