0Pricing
Go Academy · Lektion

Unterbefehle und Befehlsgruppen

CLI-Hierarchien mit mehreren Ebenen erstellen

Unterbefehle und Befehlsgruppen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Hierarchische Befehle

Cobra unterstützt beliebige Verschachtelungen: Root → Unterbefehl → Unter-Unterbefehl. Benutzer rufen app resource action auf, etwa kubectl get pods.

Unterbefehle hinzufügen

Erstellen Sie jeden Unterbefehl als separate cobra.Command und registrieren Sie ihn bei seinem übergeordneten Befehl:

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)
}

Gruppenanzeige (Cobra v1.6+)

Ordnen Sie Befehle Anzeigegruppen in der Hilfeausgabe zu, um die Organisation zu verbessern:

rootCmd.AddGroup(&cobra.Group{ID: "mgmt", Title: "Management Commands"})
userCmd.GroupID = "mgmt"

Aliase

Fügen Sie Aliase hinzu, damit Benutzer kurze oder alternative Namen für Befehle verwenden können:

var userCmd = &cobra.Command{
    Use:     "user",
    Aliases: []string{"users", "u"},
}

Ausgeblendete Befehle

Markieren Sie Debugging- oder interne Befehle als ausgeblendet, damit sie nicht in der Hilfe erscheinen, aber weiterhin funktionieren:

cmd.Hidden = true

Veraltete Befehle

Markieren Sie alte Befehle als veraltet, damit bei ihrer Verwendung eine Warnung angezeigt wird:

cmd.Deprecated = "use 'new-command' instead"

Pre- und Post-Hooks

Verwenden Sie PersistentPreRunE und PostRunE für Einrichtungs- und Aufräumarbeiten, die für einen Befehl und alle seine Unterbefehle gelten, z. B. zum Initialisieren einer DB-Verbindung, bevor ein Unterbefehl ausgeführt wird.

rootCmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
    return initDB()
}

Hilfe für Blattbefehle deaktivieren

Cobra fügt standardmäßig help als Unterbefehl hinzu. Deaktivieren Sie ihn, wenn Ihre Anwendung einen eigenen Hilfebefehl besitzt oder die Struktur der Unterbefehle dadurch unübersichtlich würde.

rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})

Auf den übergeordneten Befehl zugreifen

Innerhalb einer Run-Funktion gibt cmd.Parent() den übergeordneten Befehl zurück. Das ist nützlich, um auf Flags zuzugreifen, die beim übergeordneten Befehl definiert sind.

Befehle durchlaufen

Verwenden Sie rootCmd.Commands(), um alle registrierten Unterbefehle zu durchlaufen. Das ist nützlich für programmatische Introspektion oder die automatische Generierung von Dokumentation.

Generierung von Manpages und Markdown

Cobra kann mit dem Paket cobra/doc Manpages und Markdown-Dokumentation für alle Befehle generieren:

doc.GenMarkdownTree(rootCmd, "./docs")

Kurzer Test

Wie machen Sie einen Cobra-Unterbefehl unter mehreren Namen verfügbar?

Zusammenfassung: Unterbefehle und Gruppen

Wichtige Punkte:

  • AddCommand verschachtelt Befehle hierarchisch
  • GroupID organisiert die Hilfeanzeige in Cobra v1.6+
  • Aliase für Kurzformen; Hidden für interne Befehle
  • PersistentPreRunE für gemeinsame Einrichtung über mehrere Unterbefehle hinweg

Häufig gestellte Fragen

Ist die Lektion „Unterbefehle und Befehlsgruppen“ kostenlos?

Ja — der vollständige Text von „Unterbefehle und Befehlsgruppen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Unterbefehle und Befehlsgruppen“?

CLI-Hierarchien mit mehreren Ebenen erstellen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Unterbefehle und Befehlsgruppen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Cobra-Grundlagen
  2. Flags und persistente Flags
  3. Unterbefehle und Befehlsgruppen
  4. CLI-Tools verteilen
← Zurück zu Go Academy