0Pricing
Go Academy · Lección

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 = true

Comandos 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

  1. Fundamentos de Cobra
  2. Flags y flags persistentes
  3. Subcomandos y grupos de comandos
  4. Distribución de herramientas CLI
← Volver a Go Academy