Go Academy · leksjon

Underkommandoer og kommandogrupper

Bygge CLI-hierarkier med flere nivåer

Leksjon 3 av 413 trinn

Underkommandoer og kommandogrupper er en gratis leksjon i Go Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Go Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Go Academy inneholder totalt 4 leksjoner.

Hierarkiske kommandoer

Cobra støtter vilkårlig nøsting: rot → underkommando → under-underkommando. Brukere kaller app resource action, for eksempel kubectl get pods.

Legge til underkommandoer

Bygg hver underkommando som en separat cobra.Command, og registrer den hos forelderen:

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

Gruppevisning (Cobra v1.6+)

Tilordne kommandoer til visningsgrupper i hjelpeutdataene for bedre organisering:

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

Aliaser

Legg til aliasser slik at brukere kan bruke korte eller alternative navn på kommandoer:

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

Skjulte kommandoer

Merk feilsøkings- eller interne kommandoer som skjulte, slik at de ikke vises i hjelpen, men fortsatt fungerer:

cmd.Hidden = true

Foreldede kommandoer

Merk gamle kommandoer som foreldede for å vise en advarsel når de brukes:

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

Pre- og Post-hooks

Bruk PersistentPreRunE og PostRunE til oppsett og opprydding som gjelder for en kommando og alle underkommandoene dens, for eksempel initialisering av en DB-tilkobling før en underkommando kjøres.

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

Deaktivere hjelp for bladkommandoer

Cobra legger til help som en underkommando som standard. Deaktiver den hvis appen har sin egen hjelpekommando, eller hvis underkommandostrukturen ville blitt forvirrende.

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

Få tilgang til foreldrek kommando

Inne i en Run-funksjon returnerer cmd.Parent() foreldreskommandoen. Dette er nyttig for å få tilgang til flagg som er definert hos forelderen.

Kommandogjennomgang

Bruk rootCmd.Commands() til å iterere gjennom alle registrerte underkommandoer. Dette er nyttig for programmatisk introspeksjon eller automatisk generering av dokumentasjon.

Generering av man-sider og Markdown

Cobra kan generere man-sider og Markdown-dokumentasjon for alle kommandoer med pakken cobra/doc:

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

Hurtigsjekk

Hvordan gjør De en Cobra-underkommando tilgjengelig under flere navn?

Oppsummering: Underkommandoer og grupper

Viktige punkter:

  • AddCommand nøster kommandoer hierarkisk
  • GroupID organiserer hjelpevisningen i Cobra v1.6+
  • Aliaser for korte former; Hidden for interne kommandoer
  • PersistentPreRunE for felles oppsett på tvers av underkommandoer
Gratis å komme i gang

Lær deg Go med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Underkommandoer og kommandogrupper» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Go Academy, inkludert «Underkommandoer og kommandogrupper», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Go Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Underkommandoer og kommandogrupper»?

Bygge CLI-hierarkier med flere nivåer Du øver på Go Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Go Academy?

Ingen tidligere erfaring er nødvendig. Go Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Underkommandoer og kommandogrupper»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Go Academy-leksjonen?

Ja. Alle Go Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om Cobra
  2. Flagg og permanente flagg
  3. Underkommandoer og kommandogrupper
  4. Distribuere CLI-verktøy
← Tilbake til Go Academy