命令行参数处理【包含命令行包使用】

Rainy 2023-2-7 487

使用 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)

最新回复 (0)
返回
发新帖