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. keras训练函数fit和fit_generator对比,图像生成器ImageDataGenerator数据增强

    1. [深度学习] Keras 如何使用fit和fit_generator https://blog.csdn.net/zwqjoy/article/details/88356094 ps:解决样本数 ...

  2. 手摸手带你理解Vue的Watch原理

    前言 watch 是由用户定义的数据监听,当监听的属性发生改变就会触发回调,这项配置在业务中是很常用.在面试时,也是必问知识点,一般会用作和 computed 进行比较. 那么本文就来带大家从源码理解 ...

  3. JsPlumb在react的使用方法及介绍

    JsPlumb在react的使用方法及介绍 一.相关资料来源: 1.https://bitqiang.gitbooks.io/jsplumb/content/Chapter1_IMPORTS_AND_ ...

  4. 为什么总是无法访问VMware内的web服务?

    除了防火墙的设置,很可能时因为你的Web服务监听的时127.0.0.1地址,构成了本机回环,只能本机访问的原因. 启动服务的时候可以尝试指定hostname为0.0.0.0或者你想监听的IP地址. [ ...

  5. h5手机摇一摇功能实现:基于html5重力感应DeviceMotionEvent事件监听手机摇晃

    DeviceMotionEven是html5提供的一个用来获取设备物理方向及运动的信息(比如陀螺仪.罗盘及加速计)的Dom事件,事件描述如下: deviceorientation:提供设备的物理方向信 ...

  6. JSR 303 进行后台数据校验

    一.JSR 303 1.什么是 JSR 303? JSR 是 Java Specification Requests 的缩写,即 Java 规范提案. 存在各种各样的 JSR,简单的理解为 JSR 是 ...

  7. 方正璞华Java面试总结(武汉)

    方正璞华Java面试总结(武汉) 现在社会急缺复合型人才,计算机与日语的结合,具备这两种能力的人不愁工作,最后他们大多到的也是日企,甚至到日本去工作.至今为止接触的日企有光庭.方正璞华.先锋·商泰.英 ...

  8. Drf06 /drf总结

    Drf06 /drf总结 目录 Drf06 /drf总结 1. restful规范 2. drf组件认证的实现过程? 3. drf组件中权限的实现过程? 4. drf组件中节流的实现方式? 5. 什么 ...

  9. saver 的保存与恢复

    模型保存,先要创建一个Saver对象:saver=tf.train.Saver(), max_to_keep 是用来设置保存模型的个数,默认为5,即保存最近的五个模型,saver=tf.train.S ...

  10. Android 性能优化 ---- 启动优化

    Android 性能优化 ---- 启动优化 1.为什么要进行启动优化 一款应用的第一印象很重要,第一印象往往决定了用户的去留.打开一款应用,如果速度很快,很顺畅,那么很容易让人觉得这款应用背后的技术 ...