命令行编程

使用os.Args获取命令行参数

os.Args切片存储了命令行的所有参数,其中首位元素为命令名称:

package main

import (
    "fmt"
    "os"
)

func main() {
    s, sep := "", ""
    for _, arg := range os.Args { // 通常使用方式:args := os.Args[1:]
        s += sep + arg
        sep = " "
    }
    fmt.Println(s)
}

构建完毕后,执行可执行程序main: ./main a bcd edf结果如下

~/GlandProject/bin/main a bcd edf

使用flag获取命令行参数

无任何输入参数调用:

传递参数调用:

传递错误的参数:

传递多余的参数调用:

查看帮助命令

flag会自动为程序生成帮助命令:

命令行传参形式

  • 单个bool标志:main -b=true,可以省略为main -b

  • 一下四种传参形式是相同的:

    • main --name=zhangsa

    • main --name zhangsan

    • main -name=zhangsan

    • main -name zhangsan

  • 约定俗称将单个-表示命令参数的缩写,两个-,也就是--表示命令参数全写

非标志参数

也就是不带-的参数:

命令缩写实现

通过提供2个标志处理程序实现:

强制参数

也就是必需参数,通过判断值是否为零值确认:

最后更新于

这有帮助吗?