使用 Clap 编写 Rust 命令行 CLI 程序(覆盖所有参数解析类型)

📅 2026/7/13 15:10:39 👁️ 阅读次数 📝 编程学习
使用 Clap 编写 Rust 命令行 CLI 程序(覆盖所有参数解析类型)

文章目录

  • 1. 命令行有哪些元素?
    • 1.1 Command(命令)
    • 1.2 Subcommand(子命令)
    • 1.3 Argument(位置参数)
    • 1.4 Option(选项)
    • 1.5 Flag(开关)
  • 2. 创建一个示例项目
  • 3. Argument(位置参数)示例
    • 3.1 简单示例
    • 3.2 为参数设置默认值
    • 3.3 允许参数为空
  • 4. Option(选项)示例
  • 5. Flag(开关)示例
  • 6. 选项终止符(--)示例
  • 7. Subcommand(子命令)示例
  • 8. 嵌套 Subcommand(子命令)示例

一个像样的应用程序,从命令行开始!本文介绍 Rust 使用最广泛的命令行参数解析工具:Clap,它通过 Derive 特性尽可能简化了结构体和宏的使用,同时还提供了更底层的 Builder API。

1. 命令行有哪些元素?

一个复杂的命令行会有很多种形式的参数、选项和子命令,为了更好地介绍后面的具体实现,我们先明确一下相关的术语和概念。以下面这个 git 命令为例:

git commit -m "fix bug" --amend file1.txt file2.txt

它可以拆解为:

git -> command commit -> subcommand -m -> option "fix bug" -> option 的实参(或值) --amend -> option(布尔开关) file1.txt -> argument file2.txt -> argument

1.1 Command(命令)

Command(命令)就是编译后的二进制程序名,对于上面的示例就是git

1.2 Subcommand(子命令)

如果一个