golang实现命令行程序的使用帮助

通过flag包我们可以很方便的实现命令行程序的参数标志,
接下来我们来看看如何实现命令行程序的使用帮助,
通常以参数标志-h--help的形式来使用.

自动生成使用帮助

我们只需要声明其他参数标志,并执行解析,flag包会帮我们自动生成使用帮助.

//main.go
//输出2个数,输出较大的数
package main

import (
    "flag"
    "fmt"
    "math"
)

func main() {
    firstFlag := flag.Float64("first", 0, "第一个数")
    secondFlag := flag.Float64("second", 0, "第二个数")
    flag.Parse()
    max := math.Max(*firstFlag, *secondFlag)
    fmt.Print(max)
}

编译生成后执行看看:

E:\GOPATH\src\max>max.exe -help
Usage of max.exe:
  -first float
        第一个数
  -second float
        第二个数

E:\GOPATH\src\max>max.exe -first=5 -second=66
66

自定义使用帮助

也许你不大喜欢或不满足于自动生成的使用帮助,那么也你可以试试自定义使用帮助. 同样我们使用flag包,但这里重写了flag.Usage来实现自定义使用帮助.

//main.go
package main

import (
    "flag"
    "fmt"
)

const help = `
程序名称: max
描述: 输出2个数,输出较大的数.
示例:
1. test -help
2. max -first=5 -second=66
`

func main() {
    flag.Usage = func() {
        fmt.Print(help)
    }
    flag.Parse()
    //这里只实现使用帮助.
}

编译生成后执行看看:

E:\GOPATH\src\max>max.exe -help

程序名称: max
描述: 输出2个数,输出较大的数.
示例:
1. test -help
2. max -first=5 -second=66

参考

原文地址:https://www.cnblogs.com/lvcisco/p/12147604.html

时间: 2024-10-27 17:18:17

golang实现命令行程序的使用帮助的相关文章

详解NodeJS和命令行程序

源起 植根于Unix系统环境下的程序,很多都把贯彻Unix系统设计的哲学作为一种追求.Unix系统管道机制的发明者Douglas McIlroy把Unix哲学总结为三点: 专注做一件事,并做到极致.程序协同工作.面向通用接口,如文本数据流.随着Unix/Linux系统在服务器上影响力越发强大,以及各种跨平台解决方案的发展,这种哲学也被带到了各种平台上.若干年前,笔者第一次接触NodeJS和其包管理解决方案NPM时候,就感觉到其官方倡导的风格,和Unix系统哲学非常契合.近年来,随着NodeJS在

Java命令行程序构建工具-airline

以前对于开发Java命令行程序,我都是很头大的,命令行程序麻烦的是解析参数,以及一些帮助信息,今天在研究接口测试时偶然发现了一个工具可以让你快速构建命令行程序 github地址 airline 导入jar包 airline jar 在maven仓库里搜索适合你构建系统的语句 代码 我找了个解析har文件的项目,来讲解开发过程 定制自己的命令行 我的命令行以doctorq作为命令,参数为company,命令的完整格式应该为doctorq company XXXXX. @Command(name="

如何使用Docker实现PHP命令行程序的CI/CD?

本文标签: Docker PHP命令行程序的CI/CD Codeship 内容要点: - 使用Jet设置环境并在本地运行测试 - 配置CodeshipPro每次新代码提交时,自动运行测试 - 上一步的测试通过后,自动将更新部署到服务器 持续集成 应用程序和测试套件已经在本地运行,下一步要做的是建立一些持续集成系统.虽然可以设置服务器来执行此操作,但这个过程工作量略大,因此推荐一个像CodeshipPro的服务. 使用Jet进行本地测试 代码提交到Codeship测试前,建议先安装其本地版本的持续

Node.js 命令行程序开发教程

nodejs开发命令行程序非常方便,具体操作方式查看下面几篇文章 http://www.ruanyifeng.com/blog/2015/05/command-line-with-node.html 基于node构建命令行工具

【CMD】如何批量调用命令行程序

最近在研究守望先锋的解包,然后中途有一个步骤,将00C文件通过一个命令行程序转为obj格式. 但是我遇到一个问题,这个命令行程序一次只能转换一个文件,而00C文件足足有7400个以上,这就难倒我了. 固然这个命令行程序有着源码,但是对于比较弱鸡的我来说,没有什么办法. 后来在朋友的指点下,发现了解决办法,因此在此分享给大家. 在CMD中,有类似于其他语言的for的命令. 其用法是: for %变量 IN (文件通配符) DO (要做的事情) 对于我来用的话,就是这样的 for %i IN (*.

软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序

软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数与程序交互,需实现的功能如下: 1.基本功能 支持 -c 统计文件字符数支持 -w 统计文件单词数支持 -l 统计文件总行数 2.拓展功能 支持 -a 返回高级选项(代码行 空行 注释行)支持 -s 递归处理符合条件的文件 3.高级功能 支持 -x 程序以图形界面与用户交互 [filename] 是

命令行程序增加 GUI 外壳

Conmajia ? 2012 Updated on Feb. 21, 2018 命令行大家都用过: 图 1 命令行程序工作界面 现在想办法为它做一个 GUI 外壳,实际效果参考图 2. 图 2 带 GUI 外壳的命令行程序 程序思路是这样的: 通过运行 cmd.exe 来操作命令行,现在要给它一个 GUI. Windows 的命令行 cmd.exe \(\rightarrow\) 新进程 Process \(\rightarrow\) WinForm \(\rightarrow\) GUI 这

实现一个自动生成小学四则运算题目的命令行程序

Github项目地址:https://github.com/sumilekaedei/Myapp.git 题目:实现一个自动生成小学四则运算题目的命令行程序. 自然数:0, 1, 2, -. 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. 运算符:+, ?, ×, ÷. 括号:(, ). 等号:=. 分隔符:空格(用于四则运算符和等号前后). 算术表达式: e = n | e1 + e2 | e1 ? e2 | e1 × e2 | e1 ÷ e2 | (e), 其中e, e1

用什么库写 Python 命令行程序?看这一篇就够了

作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作为本次旅程的终点,希望从一个更高的视角对这些库进行横向对比,总结它们的异同点和使用场景,以期在应对不同