参数flag

flag 参数

flag包实现了命令行参数的解析。


-h=true  实现帮助文档

package main

import (

    "flag"

    "fmt"

    "os"

)

// 实际中应该用更好的变量名

var (

    h bool

    v, V bool

    t, T bool

    q    *bool

    s string

    p string

    c string

    g string

)

func init() {

    flag.BoolVar(&h, "h", false, "this help")

    flag.BoolVar(&v, "v", false, "show version and exit")

    flag.BoolVar(&V, "V", false, "show version and configure options then exit")

    flag.BoolVar(&t, "t", false, "test configuration and exit")

    flag.BoolVar(&T, "T", false, "test configuration, dump it and exit")

    // 另一种绑定方式

    q = flag.Bool("q", false, "suppress non-error messages during configuration testing")

    // 注意 `signal`。默认是 -s string,有了 `signal` 之后,变为 -s signal

    flag.StringVar(&s, "s", "", "send `signal` to a master process: stop, quit, reopen, reload")

    flag.StringVar(&p, "p", "/usr/local/nginx/", "set `prefix` path")

    flag.StringVar(&c, "c", "conf/nginx.conf", "set configuration `file`")

    flag.StringVar(&g, "g", "conf/nginx.conf", "set global `directives` out of configuration file")

    // 改变默认的 Usage,flag包中的Usage 其实是一个函数类型。这里是覆盖默认函数实现,具体见后面Usage部分的分析

    flag.Usage = usage

}

func main() {

    flag.Parse()

    if h {

        flag.Usage()

    }

}

func usage() {

    fmt.Fprintf(os.Stderr, `nginx version: nginx/1.10.0

Usage: nginx [-hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:

`)

    flag.PrintDefaults()

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,516评论 0 13
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,729评论 0 3
  • 逆风的翅膀,更适合飞翔 只有花依旧,残存绕枝头 凋谢了守候,绿水不长流 ----i'...
    换不回感觉阅读 398评论 1 0
  • 她挑在那天结婚,是因为那天也是他们同月同日的生日,他28,她26。 他们经历过晴空万里也经历过狂风暴雨,一起...
    壹滴雲阅读 249评论 0 0
  • 烟台恒美广告有限公司 和利喷画 简约装饰工程有限公司 简•美画框工作室 一站式广告服务集商 比学习,今天看鸡毛飞上...
    0222e7fbf980阅读 205评论 0 0