go语言flag包 go语言gc原理( 三 )


我们只为一个命令定义了一个标志 。
有关标志的更多文档,请访问
对于一个更完整的例子更大的应用程序,请检查 Hugo。
当您有子命令时 , Cobra会自动将help命令添加到应用程序中 。当用户运行“应用程序帮助”时,将调用此函数 。此外,help还支持所有其他命令作为输入 。例如 , 您有一个名为“create”的命令,没有任何附加配置;调用“app help create”时,Cobra将起作用 。每个命令都会自动添加“-help”标志 。
以下输出由Cobra自动生成 。除了命令和标志定义之外,不需要任何东西 。
帮助就像其他命令一样 。它周围没有特殊的逻辑或行为 。事实上,你可以提供你想提供的 。
您可以为默认命令提供自己的帮助命令或模板,以用于以下功能:
当用户提供无效的标志或无效的命令时,Cobra通过向用户显示“用法”来响应 。
你可以从上面的帮助中认识到这一点 。这是因为默认帮助将用法作为其输出的一部分嵌入 。
您可以提供自己的使用函数或模板供Cobra使用 。与帮助一样,函数和模板也可以通过公共方法重写:
如果在root命令上设置了version字段,Cobra会添加一个顶级的'--version'标志 。运行带有“-version”标志的应用程序将使用版本模板将版本打印到标准输出 。可以使用cmd.SetVersionTemplate(s string)函数自定义模板 。
可以在命令的主运行函数之前或之后运行函数 。PersistentPreRun和PreRun函数将在运行之前执行 。PersistentPostRun和PostRun将在运行后执行 。如果子函数不声明自己的函数,则它们将继承Persistent*Run函数 。这些函数按以下顺序运行:
输出:
当发生“未知命令”错误时 , Cobra将打印自动建议 。这使得Cobra在发生拼写错误时的行为类似于git命令 。例如:
基于注册的每个子命令和Levenshtein距离的实现,建议是自动的 。匹配最小距离2(忽略大小写)的每个已注册命令都将显示为建议 。
如果需要在命令中禁用建议或调整字符串距离,请使用:
or
您还可以使用SuggestFor属性显式设置将为其建议给定命令的名称 。这允许对在字符串距离方面不接近的字符串提供建议,但在您的一组命令中是有意义的 , 并且对于某些您不需要别名的字符串 。例子:
Cobra可以基于子命令、标志等生成文档 。请在 docs generation文档 中阅读更多关于它的信息 。
Cobra可以为以下shell生成shell完成文件:bash、zsh、fish、PowerShell 。如果您在命令中添加更多信息,这些补全功能将非常强大和灵活 。在 Shell Completions 中阅读更多关于它的信息 。
Cobra is released under the Apache 2.0 license. SeeLICENSE.txt
pflag命令行参数本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数 。
为了支持go语言flag包 , go flags需要添加到pflag的flagset 。
例如:我们想添加go flags到CommandLine flagset
windows 怎么编译 go语言1、解压压缩包到go工作目录go语言flag包,如解压到E:\opensource\go\go,解压后go语言flag包的目录结构如下:
E:\opensource\go\go
├─api
├─bin
│├─go.exe
│├─godoc.exe
│└─gofmt.exe
├─doc
├─include
├─lib
├─misc
├─pkg
├─src
└─test
2、增加环境变量GOROOT,取值为上面的go工作目录
3、Path环境变量中添加";%GOROOT%\bin",以便能够直接调用go命令来编译go代码,至此go编译环境就配置好了
注:如果不想手动设置系统环境变量 , 也可下载go启动环境批处理附件 , 

推荐阅读