命令行程序是工程师们最常用的程序形式之一,而编写一个方便使用的命令行程序最重要的就是参数的设置与易读的参数帮助说明。今天为大家搬运的就是专门处理命令性参数以及生成帮助说明的库。
clap
是一个易于使用、高效且功能齐全的库,用于在编写控制台/终端应用程序时解析命令行参数和子命令。
关于
clap
用于解析并验证用户在运行命令行程序时提供的命令行参数字符串。 你所需要做的只是提供有效参数的列表,clap
会自动处理其余的繁杂工作。 这样工程师可以把时间和精力放在实现程序功能上,而不是参数的解析和验证上。
当clap
解析了用户提供的参数字符串,它就会返回匹配项以及任何适用的值。 如果用户输入了错误或错字,clap
会通知他们错误并退出(或返回Result
类型,并允许您在退出前执行任何清理操作)。 这样,工程师可以在代码中对参数的有效性做出合理的假设。
简单示例
下面的例子展示了`clap'的一些非常基本的功能的快速例子。 有关需求,冲突,组,多个值和出现次数等更高级的用法,请参见文档
**注:**所有这些示例在功能上都是相同的,但是显示了clap
用法的不同风格。
第一个示例展示了一种clap
的用法,该方法允许使用更高级的配置选项(此小示例中未显示),甚至可以在需要时动态生成参数。 缺点是它比较冗长。
// 此示例演示了clap创建参数的完整“生成器模式”样式,该样式
// 相对详细而冗长,但可以更轻松地进行编辑,有时还提供一些更高级的选项,并且
// 支持动态生成参数。
extern crate clap;
use clap::{Arg, App, SubCommand};
fn main() {
let matches = App::new("My Super Program")
.version("1.0")
.author("Kevin K. <kbknapp@gmail.com>")
.about("Does awesome things")
.arg(Arg::with_name("config")
.short("c")
.long("config")
.value_name("FILE")
.help("Sets a custom config file")
.takes_value(true))