Subcomandos y grupos de comandos
Creación de jerarquías de CLI de varios niveles
Subcomandos y grupos de comandos es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
Comandos jerárquicos
Cobra admite anidamientos arbitrarios: raíz → subcomando → subcomando de segundo nivel. Los usuarios ejecutan app resource action, como kubectl get pods.
Adición de subcomandos
Construya cada subcomando como un cobra.Command independiente y regístrelo con su comando principal:
var userCmd = &cobra.Command{Use: "user", Short: "Manage users"}
var userCreateCmd = &cobra.Command{Use: "create", Short: "Create user", RunE: createUser}
func init() {
userCmd.AddCommand(userCreateCmd)
rootCmd.AddCommand(userCmd)
}Visualización por grupos (Cobra v1.6+)
Asigne los comandos a grupos de visualización en la salida de ayuda para organizarla mejor:
rootCmd.AddGroup(&cobra.Group{ID: "mgmt", Title: "Management Commands"})
userCmd.GroupID = "mgmt"Alias
Añada alias para que los usuarios puedan utilizar nombres abreviados o alternativos para los comandos:
var userCmd = &cobra.Command{
Use: "user",
Aliases: []string{"users", "u"},
}Comandos ocultos
Marque los comandos de depuración o internos como ocultos para que no aparezcan en la ayuda, aunque sigan funcionando:
cmd.Hidden = trueComandos obsoletos
Marque los comandos antiguos como obsoletos para mostrar una advertencia cuando se utilicen:
cmd.Deprecated = "use 'new-command' instead"Hooks Pre y Post
Utilice PersistentPreRunE y PostRunE para las tareas de configuración y desmontaje que se aplican a un comando y a todos sus subcomandos (por ejemplo, inicializar una conexión a una base de datos antes de ejecutar cualquier subcomando).
rootCmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
return initDB()
}Desactivación de la ayuda para comandos hoja
Cobra añade help como subcomando de forma predeterminada. Desactívelo si su aplicación tiene su propio comando de ayuda o si la estructura de subcomandos pudiera resultar confusa.
rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})Acceso al comando principal
Dentro de una función Run, cmd.Parent() devuelve el comando principal, lo que resulta útil para acceder a los flags definidos en este.
Recorrido de comandos
Utilice rootCmd.Commands() para iterar sobre todos los subcomandos registrados. Resulta útil para la introspección mediante código o para generar documentación automáticamente.
Generación de páginas man y Markdown
Cobra puede generar páginas man y documentación Markdown para todos los comandos mediante el paquete cobra/doc:
doc.GenMarkdownTree(rootCmd, "./docs")Comprobación rápida
¿Cómo consigue que un subcomando de Cobra esté disponible con varios nombres?
Resumen: subcomandos y grupos
Puntos clave:
- AddCommand anida los comandos jerárquicamente
- GroupID organiza la visualización de la ayuda en Cobra v1.6+
- Aliases para formas abreviadas; Hidden para comandos internos
- PersistentPreRunE para compartir la configuración entre subcomandos
Preguntas frecuentes
¿La lección «Subcomandos y grupos de comandos» es gratis?
Sí — el texto completo de «Subcomandos y grupos de comandos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Subcomandos y grupos de comandos»?
Creación de jerarquías de CLI de varios niveles Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Subcomandos y grupos de comandos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de Cobra
- Flags y flags persistentes
- Subcomandos y grupos de comandos
- Distribución de herramientas CLI