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$
练练手, 不多说。