用go的flag包来解析命令行参数

      go真是太贴心了, 来看看用go的flag包来解析命令行参数:

package main

import(
	"flag"
	"fmt"
	)

func main() {
	var l = flag.Int("l", 0, "para l is for len")
	var c = flag.String("c", "nothing", "para c is for content")
	flag.Parse()
	fmt.Println(*l)
	fmt.Println(*c)
	flag.Usage()
}

      看下结果:

ubuntu@VM-0-15-ubuntu:~/taoge/go$ go build test.go 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test 
0
nothing
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test -l1 -ca
flag provided but not defined: -l1
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test -l=1 -c=a
1
a
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test -l 1 -c a
1
a
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test  -c ab  -l 2
2
ab
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test  -l 234
234
nothing
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 
ubuntu@VM-0-15-ubuntu:~/taoge/go$ ./test  -l 234  -s abc
flag provided but not defined: -s
Usage of ./test:
  -c string
     para c is for content (default "nothing")
  -l int
     para l is for len
ubuntu@VM-0-15-ubuntu:~/taoge/go$ 

         练练手, 不多说。

猜你喜欢

转载自blog.csdn.net/stpeace/article/details/81809499
今日推荐