Mestring av Linux-kommandolinjen og Bash-skripting · leksjon

Shell-funksjoner og gjenbrukbare kodebiter

Definer og bruk Bash-funksjoner for å samle kommandoer i gjenbrukbare, parameteriserte byggeklosser for skallet.

Leksjon 4 av 413 trinn

Shell-funksjoner og gjenbrukbare kodebiter er en gratis leksjon i Mestring av Linux-kommandolinjen og Bash-skripting på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Mestring av Linux-kommandolinjen og Bash-skripting, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Mestring av Linux-kommandolinjen og Bash-skripting inneholder totalt 4 leksjoner.

Hvorfor skallets funksjoner?

En shell-funksjon samler et sett med kommandoer under ett navn, slik at du kan bruke dem på nytt uten å skrive dem inn igjen.

  • Raskere enn å kopiere og lime inn kommandoer
  • Ryddigere enn lange aliaser
  • Kan ta imot argumenter, i motsetning til aliaser
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Definere en funksjon

Den enkleste formen bruker syntaksen name() { ... }. Kommandoene i klammene kjøres når du kaller funksjonen med navnet dens.

greet() {
  echo "Hello from a function"
}
greet

Funksjonsargumenter

Funksjoner mottar posisjonsparametere på samme måte som skript: $1, $2. $# er antallet, og $@ utvides til alle argumentene.

backup() {
  cp "$1" "$1.bak"
  echo "Backed up $1"
}
backup notes.txt

Returverdier og avslutningsstatus

Funksjoner returnerer en avslutningsstatus via return N (0–255). Bruk den til å kontrollere om noe lykkes eller mislykkes, ikke til å returnere data.

is_root() {
  [ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fi

Returnere utdata med echo

Ettersom return bare overfører en statuskode, skrives faktiske utdata ut og fanges opp med $( ).

timestamp() {
  date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"

Lokale variabler

Som standard er variabler i funksjoner globale. Bruk local for å begrense en variabel til funksjonen og unngå å forurense skallet.

count_lines() {
  local n
  n=$(wc -l < "$1")
  echo "$1 has $n lines"
}

Standardverdier for argumenter

Bruk parameterutvidelsen ${1:-default} for å falle tilbake på en standardverdi når et argument mangler.

say() {
  local msg="${1:-Hello World}"
  echo "$msg"
}
say
say "Custom message"

Funksjoner kontra aliaser

Aliaser erstatter ganske enkelt tekst og kan ikke håndtere posisjonsargumenter på en god måte. Funksjoner kan ta valg, kjøre løkker og behandle inndata.

  • Bruk et alias for en fast snarvei
  • Bruk en funksjon når De trenger logikk eller argumenter
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Gjøre funksjoner permanente

Funksjoner som defineres ved ledeteksten, forsvinner når skallet avsluttes. Legg dem til i ~/.bashrc for å gjøre dem tilgjengelige i hver økt.

# Append to ~/.bashrc
extract() {
  case "$1" in
    *.tar.gz) tar xzf "$1" ;;
    *.zip)    unzip "$1" ;;
    *)        echo "Unknown format" ;;
  esac
}

Vise og fjerne funksjoner

declare -F viser funksjonsnavn, mens declare -f name viser funksjonskroppen. Fjern en funksjon med unset -f name.

declare -F
declare -f greet
unset -f greet

Kombinere funksjoner

Funksjoner kan kalle andre funksjoner, slik at små gjenbrukbare deler kan kombineres til større verktøy.

log() { echo "[$(date +%T)] $*"; }
deploy() {
  log "Starting deploy"
  log "Done"
}
deploy

Hurtigsjekk

Test forståelsen Deres av skallfunksjoner.

Oppsummering

De har lært å bygge gjenbrukbare skall-funksjoner:

  • Definer med name() { ... } og kall funksjonen med navnet
  • Bruk $1, $@, $# for argumenter og return for status
  • Begrens variablers omfang med local, og returner data via echo
  • Gjør dem permanente i ~/.bashrc, og undersøk dem med declare -f
Gratis å komme i gang

Lær deg Bash 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
22
Leksjoner
88

Ofte stilte spørsmål

Er leksjonen «Shell-funksjoner og gjenbrukbare kodebiter» gratis?

Ja – hele teksten i «Shell-funksjoner og gjenbrukbare kodebiter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Mestring av Linux-kommandolinjen og Bash-skripting-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Mestring av Linux-kommandolinjen og Bash-skripting inneholder totalt 4 leksjoner.

Hva lærer jeg i «Shell-funksjoner og gjenbrukbare kodebiter»?

Definer og bruk Bash-funksjoner for å samle kommandoer i gjenbrukbare, parameteriserte byggeklosser for skallet. Du øver på Mestring av Linux-kommandolinjen og Bash-skripting 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 Mestring av Linux-kommandolinjen og Bash-skripting?

Ingen tidligere erfaring er nødvendig. Mestring av Linux-kommandolinjen og Bash-skripting 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 4 av 4.

Hvor lang tid tar leksjonen «Shell-funksjoner og gjenbrukbare kodebiter»?

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 Mestring av Linux-kommandolinjen og Bash-skripting-leksjonen?

Ja. Alle Mestring av Linux-kommandolinjen og Bash-skripting-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. Jobbkontroll (bg, fg, jobs)
  2. Shell-utvidelse og globbing
  3. Aliaser og egendefinerte ledetekster
  4. Shell-funksjoner og gjenbrukbare kodebiter
← Tilbake til Mestring av Linux-kommandolinjen og Bash-skripting