package main

import (
"fmt"
"log"
"os" "github.com/urfave/cli"
) func main() {
//实例化一个命令行程序
oApp := cli.NewApp()
//程序名称
oApp.Name = "GoTool"
//程序的用途描述
oApp.Usage = "To save the world"
//程序的版本号
oApp.Version = "1.0.0" //预置变量
var host string
var debug bool //设置启动参数
oApp.Flags = []cli.Flag{
//参数string, int, bool
&cli.StringFlag{
Name: "host", //参数名称
Value: "127.0.0.1", //参数默认值
Usage: "Server Address", //参数功能描述
Destination: &host, //接收值的变量
},
&cli.IntFlag{
Name: "port, p",
Value: 8888,
Usage: "Server port",
},
&cli.BoolFlag{
Name: "debug",
Usage: "debug mode",
Destination: &debug,
},
}
//该程序执行的代码
oApp.Action = func(c *cli.Context) error {
fmt.Println("Test")
fmt.Printf("host=%v \n", host)
fmt.Printf("port=%v \n", c.Int("port")) //不使用变量接收,直接解析
fmt.Printf("debug=%v \n", debug)
return nil
} //设置多个命令,不同的命令执行不同的操作
//oApp.Commands = []cli.Command{
// {
// //命令全称
// Name: "lang",
// //命令简写
// Aliases: []string{"l"},
// //命令详细描述
// Usage: "Setting language",
// //命令处理函数
// Action: func(c *cli.Context) {
// //通过c.Args().First()获取命令行参数
// fmt.Printf("language=%v \n", c.Args().First())
// },
// },
// {
// Name: "encode",
// Aliases: []string{"e"},
// Usage: "Setting encoding",
// Action: func(c *cli.Context) {
// fmt.Printf("encoding=%v \n", c.Args().First())
// },
// },
//} if err := oApp.Run(os.Args); err != nil {
log.Fatal(err)
} }

➜ test go run testNew.go --port 777 --host=8.0.0.0 --debug=true
Test
host=8.0.0.0
port=777
debug=true

cli框架 获取 命令行 参数的更多相关文章

  1. pytest框架之命令行参数1

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  2. Python测试框架pytest命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

  3. pytest框架之命令行参数2

    前言 上篇博客说到命令行执行测试用例的部分参数如何使用?今天将继续更新其他一些命令选项的使用,和pytest收集测试用例的规则! pytest执行用例命令行参数 --collect-only:罗列出所 ...

  4. [Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理

    gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多 go get github.com/urfave/cli package main impo ...

  5. Hive Beeline 命令行参数

    [hadoop@hive ~]$ beeline --help[中文版] The Beeline CLI 支持以下命令行参数: Option Description --autoCommit=[tru ...

  6. 如何获取PHP命令行参数

    使用 PHP 开发的同学多少都会接触过 CLI 命令行.经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET . POST 一样为这些命令行脚本提供参数. ...

  7. Delphi 获取进程路径及命令行参数

    Delphi 获取进程路径及命令行参数, 但有的进程获取时会报错,不知为啥 type PVOID64 = UINT64; _UNICODE_STRING = packed record Length ...

  8. 使用 Apache Commons CLI 解析命令行参数示例

    很好的输入参数解析方法 ,转载记录下 转载在: https://www.cnblogs.com/onmyway20xx/p/7346709.html Apache Commons CLI 简介 Apa ...

  9. C#中如何获取其他进程的命令行参数 ( How to get other processes's command line argument )

    Subject: C#中如何获取其他进程的命令行参数 ( How to get other processes's command line argument )From: jian ...

随机推荐

  1. Salesforce LWC学习(十八) datatable展示 image

    本篇参看: https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentati ...

  2. 洛谷 P2296 【寻找道路】

    这道题真的很女少啊 言归正传: 这道题其实就是考验的思路,读题后,我们发现对于某个点他所连接的点必须连接终点,那么我们直接反向存图,从终点进行bfs,可以找到未连接的点,然后对这些点所连接的点进行标记 ...

  3. jQurey Validation 1.16

    https://jeesite.gitee.io/front/jquery-validation/1.16/demo/index.html

  4. gitlab、github账户密码修改后,记得修改本地账户的git凭据

    忘记了修改本地git账户的凭据,导致推送失败,后来才发现是本地的凭据没修改.

  5. 【python爬虫实战】使用Selenium webdriver采集山东招考数据

    目录 1.目标 2.Selenium webdriver说明 2.1 为什么使用webdriver 2.2 webdriver支持浏览器 2.3 配置与使用说明 3.采集 3.1 分析网站 3.2 遍 ...

  6. Volatile关键字的解读

    原子性 定义: 在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行. Java内存模型只保证了基本读取和赋值是原子性操作,如果要实现更大范围 ...

  7. Bank Hacking题解

    题目: 题意: 有一颗树,你可以断开点(第一个随便断,以后只能是和已经断开的点相临的点),每个点有权值,断开之后,经一条边和两条边可以到达的节点权值加一,问到最后出现过的最大的权值. 分析: 为啥断开 ...

  8. 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)

    基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...

  9. [JAVA]多线程之实现Callable接口

    通过继承Callable方式实现的多线程可以获取线程执行后的返回值 示例代码如下: public class Counter implements Callable<Integer> { ...

  10. day70 django中间件

    目录 一.django的七个中间件 二.如何自定义中间件 1 自定义中间件的创建方式 2 django提供自定制中间件的五个方法 2.1 必须掌握两个方法 2.2 了解方法 三.csrf跨站请求伪造校 ...