这对我有用。
package main
import (
"fmt"
"github.com/spf13/cobra"
)
func main() {
var strTmp string
rootCmd := &cobra.Command{
Use: "root",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println(strTmp)
},
}
subCmd := &cobra.Command{
Use: "sub",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println(strTmp)
},
}
rootCmd.PersistentFlags().StringVarP((&strTmp), "test", "t", "", "test required")
rootCmd.MarkPersistentFlagRequired("test")
rootCmd.AddCommand(subCmd)
rootCmd.Execute()
}
输出
子命令
⇒ go run test.go sub
Error: required flag(s) "test" not set
Usage:
root sub [flags]
Flags:
-h, --help help for sub
Global Flags:
-t, --test string test required
根命令
⇒ go run test.go
Error: required flag(s) "test" not set
Usage:
root [flags]
root [command]
Available Commands:
completion generate the autocompletion script for the specified shell
help Help about any command
sub
Flags:
-h, --help help for root
-t, --test string test required
Use "root [command] --help" for more information about a command.