1
我正在使用github.com/spf13/cobra
包來解釋進程的命令行參數,並且我很難理解如何確定參數值。使用github.com/spf13/cobra獲取參數值
我有一個工作程序(下面),其使用的是獲得與參數值來更新內部變量:
OptPort := 8088
rootCmd := &cobra.Command{
Use: "server",
Short: "Root command short version",
Long: "Root command long version",
}
startCmd := &cobra.Command{
Use: "start",
Short: "Start command short version",
Long: "Start command long version",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("args: " + strings.Join(args, " "))
fmt.Println("port: " + OptPort)
},
}
startCmd.Flags().IntVarP(&OptPort, "port", "p", OptPort, "Port to listen to")
rootCmd.AddCommand(startCmd)
rootCmd.Execute()
我得到的輸出如下所示:
args:
port: 8088
我知道我可以通過詢問端口變量來獲取端口值,但我會認爲這些值也會在args變量中。 args變量是空的,因爲我做錯了什麼?如果args變量被預期爲空,那麼args變量的目的是什麼?