脚本命令行参数
170字小于1分钟
2025-02-04
普通的方式
package main
import (
"fmt"
"os"
)
func main() {
args := os.Args
fmt.Printf("%T\n", args)
fmt.Println(args)
fmt.Println(len(args))
fmt.Println("arg 0:", args[0])
fmt.Println("arg 1:", args[1])
fmt.Println("arg 2:", args[2])
for i, v := range args {
fmt.Printf("arg %d: %s\n", i, v)
}
}
进阶的方式
package main
import (
"flag"
"fmt"
)
var (
names = flag.String("name", "boge", "many names like aaa,bbb,ccc")
age = flag.Int("age", 18, "people's age here")
)
func main() {
flag.Parse()
fmt.Printf("names type is %T\n", *names)
fmt.Printf("age type is %T\n", *age)
fmt.Printf("Hello, %s! You are %d years old.\n", *names, *age)
}
高阶的有cobra模块,,参考的工具有kubectl
cobra模块使用最经典的开源项目kubectl
https://github.com/kubernetes/kubectl
cobra模块下载及引用
go get -u github.com/spf13/cobra@latest
import "github.com/spf13/cobra"