flagflag
package main

import (
	"flag"
	"fmt"
)

func main() {
	// 定义命令行参数
	name := flag.String("name", "World", "A name to say hello to")

	// 解析命令行参数
	flag.Parse()

	// 打印输出
	message := fmt.Sprintf("Hello, %s!", *name)
	fmt.Println(message)
}
nameflag.Parse()

以下是一些运行该示例的命令行示例:

# 使用默认值
go run main.go
# 输出:Hello, World!

# 传递命令行参数
go run main.go -name=John
# 输出:Hello, John!

当编写Go语言的CLI应用程序时,可以使用多种包来处理命令行参数、构建命令和子命令,以及执行相应的逻辑。下面是一些更多的例子,展示了不同的用法和功能:

flag
package main

import (
	"flag"
	"fmt"
)

func main() {
	// 定义命令行参数
	var (
		name   string
		age    int
		isCool bool
	)

	flag.StringVar(&name, "name", "World", "A name to say hello to")
	flag.IntVar(&age, "age", 0, "Age of the person")
	flag.BoolVar(&isCool, "cool", false, "Is the person cool?")

	flag.Parse()

	// 打印输出
	fmt.Printf("Name: %s\n", name)
	fmt.Printf("Age: %d\n", age)
	fmt.Printf("Is cool? %v\n", isCool)
}
flag.StringVarflag.IntVarflag.BoolVarflag.Parse()
cobra
Cobra
Cobra
go get -u github.com/spf13/cobra/cobra

然后,可以使用以下代码创建一个简单的带有命令和子命令的CLI应用程序:

package main

import (
	"fmt"

	"github.com/spf13/cobra"
)

func main() {
	rootCmd := &cobra.Command{
		Use:   "myapp",
		Short: "My CLI App",
		Long:  "This is a CLI app built with Cobra",
		Run: func(cmd *cobra.Command, args []string) {
			fmt.Println("Hello from root command!")
		},
	}

	subCmd := &cobra.Command{
		Use:   "sub",
		Short: "Sub command",
		Long:  "This is a sub command",
		Run: func(cmd *cobra.Command, args []string) {
			fmt.Println("Hello from sub command!")
		},
	}

	rootCmd.AddCommand(subCmd)

	if err := rootCmd.Execute(); err != nil {
		fmt.Println(err)
	}
}
myappsubrootCmd.AddCommandrootCmd.Execute()
CobraCobra
喜欢就点赞吧。关注我,