美文网首页
Go 命令行参数

Go 命令行参数

作者: 岑吾 | 来源:发表于2020-03-28 18:19 被阅读0次

在linux中,很多都程序都习惯用命令行传参。如:

/usr/local/frp/frps -c /usr/local/frp/frps.ini

1. os.Args

对于Go,命令行参数是用os.Args这个string的切片来存储的。启动的时候,各参数以空格分割。os.Args的长度到少为1,第一个值就是应用自身的绝对路径,如上面的os.Args/usr/local/frp/frps, 第二个值是-c,第三个值是/usr/local/frp/frps.ini依次类推。
可以根据自己的需求来解析需要的参数。

2. Flag包

Go 有flag包来解析参数,可以省掉很多麻烦。

2.1 支持参数形式

flag支持3种格式的参数

-flag
-flag=x
-flag x // x不能是bool值

2.1

提供的接口有:

func Bool(name string, value bool, usage string) *bool
func Int(name string, value int, usage string) *int
func Int64(name string, value int64, usage string) *int64
func Uint(name string, value uint, usage string) *uint
func Uint64(name string, value uint64, usage string) *uint64
func Float64(name string, value float64, usage string) *float64
func String(name string, value string, usage string) *string
  • name: 获取参数的名字,如:-c中的c
  • value: 默认值,没有对应名字参数时值
  • usage: 帮助提示值,输入 --help时显示
  • 返回值: 返回值都是指针。

2.2 例子

以前面test -c /usr/local/frp/frps.ini参数为例

package main
 
import (
    "flag"
    "fmt"
)
 
func main() {
    cfgfile := flag.Bool("c", "frps.ini", "输入frps配置文件路径")
 
    flag.Parse() //解析输入的参数
 
    fmt.Println("配置文件c:", *cfgfile)
}

输出

配置文件c: /usr/local/frp/frps.ini

相关文章

  • pflag命令行参数

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

  • Emacs给Go一个更好的Playground

    ob-go简介Go特定的头参数(Header Arguments) 配置 编码流程 使用示例导入多个包命令行参数传...

  • flag

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

  • Go语言命令行和运算符

    命令行参数 在Go语言中main函数是不接收任何参数的, 但是还是可以通过其它方式来接收命令行参数 方法一 导入o...

  • Golang 命令行 os.Args 和 flag包

    参考Go语言-命令行参数(os.Args, flag包) 大部分Go程序都是没有UI的,运行在纯命令行的模式下,该...

  • Go标准库flag使用

    Go语言标准库flag基本使用 Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简...

  • 第02天(函数、工程管理)_04

    18_defer和匿名函数结合使用.go 19_获取命令行参数.go 20_局部变量.go 21_全局变量.go ...

  • go语言如何在编译阶段给变量赋值

    go语言如何在编译阶段给变量赋值 如何使用"go build -ldflags -X"命令行参数给package变...

  • Golang获取命令行参数

    使用os.Args获取命令行参数 终端命令:go run main.go 20 马超 true 20 使用flag...

  • Go语言 命令行解析(二)

    今天我们继续讲解Go语言中命令行,当我们在解析命令行传递的参数时通常会想用最简单的方法来解析自己行用到的命令行参数...

网友评论

      本文标题:Go 命令行参数

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