Go命令传参模块flag使用方法-自定义程序名称

简单使用

Demo

package main

import (
	"flag"
	"fmt"

	"gitee.com/liumou_site/glbm"
)

var (
	server string
	port   int
	passwd string
	net    string
	next   bool
	home   string
)

func main() {
	_, _, _, user_dir := glbm.GetUserInfo(false)
	flag.StringVar(&server, "ip", "10.18.26.1", "设置服务器IP地址")
	flag.IntVar(&port, "port", 80, "设置服务器端口")
	flag.StringVar(&passwd, "pd", "Gxxc@123", "设置系统密码")
	flag.StringVar(&net, "n", "w", "设置网络环境(w/z)")
	flag.BoolVar(&next, "next", false, "是否显示步骤进行手动确认")
	flag.StringVar(&home, "home", user_dir, "设置用户主目录")

	flag.Parse()
	fmt.Println(server)
	fmt.Println(port)
	fmt.Println(next)
}

效果

PS D:\DATA\git\GoLang\GoToinstall> go run .\main.go -h    
Usage of C:\Users\Y\AppData\Local\Temp\go-build771855411\b001\exe\main.exe:
  -home string
        设置用户主目录 (default "C:\\Users\\Y")
  -ip string
        设置服务器IP地址 (default "10.18.26.1")
  -n string
        设置网络环境(w/z) (default "w")
  -next
        是否显示步骤进行手动确认
  -pd string
        设置系统密码 (default "Gxxc@123")
  -port int
        设置服务器端口 (default 80)
PS D:\DATA\git\GoLang\GoToinstall> 
PS D:\DATA\git\GoLang\GoToinstall> go run .\main.go -next  
10.18.26.1
80
true

设置程序名称

Demo

package main

import (
	"flag"
	"os"

	"gitee.com/liumou_site/gns"
)

var (
	ip      string
	port    int
	mode    string
	https   bool
	u       bool
	url     string
	get     bool
	debug   bool
	timeout int
)

func main() {
	var status bool
	gf := flag.NewFlagSet("GNS", flag.ExitOnError)
	gf.StringVar(&ip, "i", "liumou.site", "设置服务器IP地址")
	gf.IntVar(&port, "p", 80, "设置服务器端口")
	gf.BoolVar(&get, "g", false, "是否使用GET方式请求(默认POST)")
	gf.BoolVar(&https, "s", false, "启用HTTPS(使用ip+端口的场景此选项才有效)")
	gf.BoolVar(&u, "u", false, "使用URL方式传入测试对象")
	gf.BoolVar(&debug, "d", false, "是否显示Debug详情")
	gf.IntVar(&timeout, "t", 5, "设置超时(秒)时间")
	args := flag.Args()
	if len(args) == 0 {
		gf.Usage()
		return
	}
	gf.Parse(args[1:])
	mode = "POST"
	if get {
		mode = "GET"
	}
	gp := new(gns.GnsConfig)
	if u {
		status = gp.HttpStatusUrl(url, mode, timeout)
	} else {
		status = gp.HttpStatus(ip, mode, port, timeout, https)
	}
	if status {
		os.Exit(0)
	} else {
		os.Exit(1)
	}
}

效果

liumou@liumou-PC:~/LinuxData/git/golang/dmeo$ go run gns.go -h
Usage of GNS:
  -d    是否显示Debug详情
  -g    是否使用GET方式请求(默认POST)
  -i string
        设置服务器IP地址 (default "liumou.site")
  -p int
        设置服务器端口 (default 80)
  -s    启用HTTPS(使用ip+端口的场景此选项才有效)
  -t int
        设置超时()时间 (default 5)
  -u    使用URL方式传入测试对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐公交也用券

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值