我想在我正在go使用的 cli 工具中選擇以下 cmd 調(diào)用cobra:$ mytool envs apps compare$ mytool envs vars compare因此,我正在創(chuàng)建命令并執(zhí)行綁定,如下所示: rootCmd.AddCommand(envsCmd) envsCmd.AddCommand(appsCmd) envsCmd.AddCommand(varsCmd) varsCmd.AddCommand(compareCmd) appsCmd.AddCommand(compareCmd)但是,在檢查子命令的父級(jí)時(shí)compare,結(jié)果總是appsvar compareCmd = &cobra.Command{ Hidden: false, Use: "compare", Short: "", Long: ``, RunE: func(cmd *cobra.Command, args []string) error { fmt.Println(cmd.Parent().Use)apps無(wú)論我是否調(diào)用,上述內(nèi)容總是會(huì)打印$ mytool envs apps compare或者$ mytool envs vars compare我是否應(yīng)該假設(shè)至少使用我想要實(shí)現(xiàn)的目標(biāo)是不可能的cobra?
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
這些命令使用指針鏈接,因此您添加的最后一個(gè)成為父命令。請(qǐng)嘗試使用相同命令的兩個(gè)副本:
var baseCompareCmd = cobra.Command{...}
var varCompareCmd = baseCompareCmd
var appsCompareCmd = baseCompareCmd
varsCmd.AddCommand(&varCompareCmd)
appsCmd.AddCommand(&appsCompareCmd)
- 1 回答
- 0 關(guān)注
- 102 瀏覽
添加回答
舉報(bào)
0/150
提交
取消