使用 flag 包来操作命令 参数传入
var a bool
var b string
var c int
flag.BoolVar(&a,"t",false,"explain bool") : bool
flag.StringVar(&b,"s" ,"default string","explain string option") :string
flag.IntVar(&c,"i",1,"explain int")
flag.Parse()
使用urfave/cli 工具包 专门构建命令行程序框架
go get github.com/urfave/cli
样例
var language string
var recusive bool
app := cli.NewApp()
app.Name = "test"
app.Usage = "test explain"
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "lang, l",
Value: "english",
Usage: "select language"
Destination: &language,
},
cli.BoolFlag{
Name: "recusive, r",
Usage: "recusive for the greeting",
Destination: &recusive,
},
}
app.Action = func(c *cli.Context) error {
var cmd string
if c.NArg() > 0 {
cmd = c.Args()[0]
fmt.Println("cmd is ",cmd)
}
fmt.Println("recusive is ", recusive)
fmt.Println("language is ", language)
return nil
}
app.Run(os.Args)