cobra是一个命令行工具库,使用它能很方便地写出与Linux类似的命令行菜单
第一个例子
使用cobra分为两部分代码 ,一个位于包中,类似于cmd的命令行,另一个位于main中,类似于一个客户端。
package cobra2
import (
"fmt"
"github.com/spf13/cobra"
"os"
)
var rootCmd = &cobra.Command{
Use: "xxx",
Run: func(cmd *cobra.Command, args []string) {
println("hello cobra")
},
}
func Execute() {
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
主函数
package main
import (
cobra2 "cobra2/cmd"
)
func main() {
cobra2.Execute()
}
运行,在命令行中,或goland的命令行中添加对应的参数
E:\go_workspace\learngo\src\cobramain>go run main.go
hello cobra
如果添加参数,反而出错
E:\go_workspace\learngo\src\cobramain>go run main.go "xxx"
Error: unknown command "xxx" for "xxx"
Run 'xxx --help' for usage.