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. python计算图像信息熵

    import cv2 import numpy as np import math import time def get_entropy(img_): x, y = img_.shape[0:2] ...

  2. Nginx 从入门到放弃(一)

    Nginx nginx的使用场景 静态资源服务 通过本地文件系统提供服务 反向代理服务 nginx的强大性能 缓存 负载均衡 API服务 OpenResty nginx优点 高并发.高性能 可扩展性好 ...

  3. 为什么Spring Security看不见登录失败或者注销的提示

    有很多人在利用Spring Security进行角色权限设计开发时,一般发现正常登录时没问题,但是注销.或者用户名时,直接就回到登录页面了,在登录页面上看不见任何提示信息,如“用户名/密码有误”或“注 ...

  4. js 字符串排序

    this.regionsList = result.sort((a, b) => a.warehouseAreaCode.localeCompare(b.warehouseAreaCode)); ...

  5. JavaScript之原型模式

    JavaScript中有这样的一个概念,对象. 有不少人觉得Java这么语言才是面向对象的语言,JavaScript哪里面向对象了. 其实说JavaScript面向对象还不如说JavaScript基于 ...

  6. Meta标签大全_web开发常用meta整理

    meta标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. 必要属性 属性 值 描 ...

  7. Blazor带我重玩前端(二)

    概览 Blazor目前有两种托管模式,一种是Server-Side模式,一种是WebAssembly模式.官方首先支持的是Service-Side模式,使用WebAssembly模式,需要更新到最新版 ...

  8. box-shadow,text-shadow

    box-shadow:inset 30px 40px 20px #f00; 如上实例,总共五个参数,其中第一个代表阴影是向内阴影还是向外阴影,第二个参数代表向右(从左向右)的偏移量,第三个参数代表向下 ...

  9. 洛谷 P2607 [ZJOI2008]骑士 树形DP

    题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各 界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里, ...

  10. response对象乱码--解决

    中文乱码 响应对象中文乱码,即就是response对象乱码. response对象输出中文数据乱码解决方案: 1 字节流输出响应乱码. 该情况不一定乱码.但是解决乱码的步骤是: 1) 设置浏览器打开文 ...