获取命令行参数

作者: 吃猫的鱼0 | 来源:发表于2018-01-04 10:56 被阅读4次

flag库

Go语言标准库提供了用于快迅解析命令行参数的flag包,大致的使用步骤如下:
a.通过flag.String(), flag.Bool(), flag.Int()等方式来定义命令行中需要使用的参数。
b.在定义完flag后,通过调用flag.Parse()来进行对命令行参数的解析。
c.获取flag.String(), flag.Bool(), flag.Int()等方法的返回值,即对应用户输入的参数.
需要注意的是flag.Xxx()返回的值是变量的内存地址,要获取值时要通过在变量前加*(星号)获取.

说明:
像flag.Int、flag.Bool、flag.String这样的函数格式都是一样的,调用的时候需要传入3个参数
参数的说明如下:
第一个arg表示参数名称,在控制台的时候,提供给用户使用.
第二个arg表示默认值,如果用户在控制台没有给该参数赋值的话,就会使用该默认值.
第三个arg表示使用说明和描述,在控制台中输入-arg的时候会显示该说明,类似-help

栗子:

package main

import (
    "flag"
    "fmt"
)

func main() {
    married := flag.Bool("married", false, "Are you married?")
    age := flag.Int("age", 22, "How old are you?")
    name := flag.String("name", "Jeson", "What your name?")

    var address string
    //flag.StringVar这样的函数第一个参数换成了变量地址,后面的参数和flag.String是一样的。
    flag.StringVar(&address, "address", "Jeson", "Where is your address?")

    flag.Parse() //解析输入的参数

    fmt.Println("输出的参数married的值是:", *married)//不加*号的话,输出的是内存地址
    fmt.Println("输出的参数age的值是:", *age)
    fmt.Println("输出的参数name的值是:", *name)
    fmt.Println("输出的参数address的值是:", address)
}

os库

栗子:

package main

import (
    "os"
    "fmt"
)

func main() {

    args := os.Args //获取用户输入的所有参数
    if args == nil || len(args) <2{
        Usage()//如果用户没有输入,或参数个数不够,则调用该函数提示用户
        //return
    }
    name := args[1] //获取输入的第一个参数
    age := args[2]  //获取输入的第二个参数
    fmt.Println("your name is:",name,"\nyour age is:",age)
}
var Usage = func() {
    fmt.Println("you name?");
    fmt.Println("you age?");
}
/*
D:\go\workspace\src\redis>go run main/main.go yang 15
your name is: yang
your age is: 15

D:\go\workspace\src\redis>*/

相关文章

  • 05-命令行参数

    通过os包获取命令行参数 获取方法导入os包然后通过os包的Args属性获取命令行参数package mainim...

  • 九、处理用户输入

    简单目录 1.命令行参数 2.处理命令行选项和命令行参数参数 3.read命令获取用户输入 1.命令行参数 在命令...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

  • java获取命令行参数

    设置命令行参数java -Dxxx(参数名) 代码中获取参数名System.getProperty("xxx")

  • VBScript:命令行 Cmdline

    ? 获取参数 要获命令行的参数,使用Wscript 的 Arguments来获取,例如 运行 获取其中一个 例如只...

  • flag

    编写命令行程序时会使用不同的启动参数(命令行参数)来控制程序的行为 Go编写命令行程序时,获取并解析命令行参数的方...

  • Python脚本获取命令行参数getopt、gnu_getopt

    问题 python脚本如何获取命令行参数,包括选项及非选项参数,例如: 相关模块 python提供了sys模块获取...

  • 命令行参数

    命令行参数 获取命令行参数 在C++中,应用程序的入口是main,main函数采用如下声明方式时,传入的参数即为命...

  • 【使用Python打造Linux命令行工具1】

    一、与命令行相关的python语言特性 使用sys.argv获取命令行参数 sys库中有一个保存所有命令行参数的a...

  • 获取命令行参数

    flag库 栗子: os库 栗子:

网友评论

    本文标题:获取命令行参数

    本文链接:https://www.haomeiwen.com/subject/dstrnxtx.html