Linux-kommandolinjen og Bash-scripting på ekspertniveau · Lektion

Shell-funktioner og genanvendelige kodestumper

Definér og brug Bash-funktioner til at samle kommandoer i genanvendelige byggesten med parametre til din shell.

Lektion 4 af 413 trin

Shell-funktioner og genanvendelige kodestumper er en gratis Linux-kommandolinjen og Bash-scripting på ekspertniveau-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-kommandolinjen og Bash-scripting på ekspertniveau, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-kommandolinjen og Bash-scripting på ekspertniveau-kurset indeholder 4 lektioner i alt.

Hvorfor shell-funktioner?

En shell-funktion samler et sæt kommandoer under ét navn, så du kan genbruge dem uden at skrive dem igen.

  • Hurtigere end at kopiere og indsætte kommandoer
  • Renere end lange aliaser
  • Kan modtage argumenter, i modsætning til aliaser
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Definition af en funktion

Den enkleste form bruger syntaksen name() { ... }. Kommandoer inden i de krøllede parenteser køres, når du kalder funktionen efter navn.

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

Funktionsargumenter

Funktioner modtager positionsparametre ligesom scripts: $1, $2. $# er antallet, og $@ udvides til alle argumenter.

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

Returværdier og afslutningsstatus

Funktioner returnerer en afslutningsstatus via return N (0-255). Brug den til kontrol af succes eller fejl, ikke til at returnere data.

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

Returnering af output via echo

Da return kun medfører en statuskode, udskrives og opsamles egentlige uddata med $( ).

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

Lokale variable

Som standard er variable inden i funktioner globale. Brug local til at begrænse en variabel til funktionen og undgå at forurene din shell.

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

Standardværdier for argumenter

Brug parameterudvidelsen ${1:-default} til at falde tilbage på en standardværdi, når et argument mangler.

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

Funktioner kontra aliasser

Aliasser erstatter blot tekst og kan ikke håndtere positionsargumenter på en enkel måde. Funktioner kan forgrene sig, gentage handlinger og behandle input.

  • Brug et alias til en fast genvej
  • Brug en funktion, når du har brug for logik eller argumenter
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Gør funktioner permanente

Funktioner, der defineres ved prompten, forsvinder, når skallen afsluttes. Tilføj dem til ~/.bashrc, så de er tilgængelige i alle sessioner.

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

Vis og fjern funktioner

declare -F viser funktionsnavne, og declare -f name viser funktionskroppen. Fjern en funktion med unset -f name.

declare -F
declare -f greet
unset -f greet

Sammensæt funktioner

Funktioner kan kalde andre funktioner, så du kan kombinere små, genanvendelige dele til større værktøjer.

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

Hurtig kontrol

Test din forståelse af skalfunktioner.

Opsamling

Du har lært at opbygge genanvendelige skalfunktioner:

  • Definér med name() { ... }, og kald funktionen med dens navn
  • Brug $1, $@ og $# til argumenter samt return til status
  • Begræns variablers rækkevidde med local, og returnér data via echo
  • Gør funktionerne permanente i ~/.bashrc, og undersøg dem med declare -f
Gratis at komme i gang

Lær Bash med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
22
Lektioner
88

Ofte stillede spørgsmål

Er lektionen “Shell-funktioner og genanvendelige kodestumper” gratis?

Ja — hele teksten til “Shell-funktioner og genanvendelige kodestumper” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-kommandolinjen og Bash-scripting på ekspertniveau-kurset, skal du opgradere til CoddyKit PRO. Linux-kommandolinjen og Bash-scripting på ekspertniveau-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Shell-funktioner og genanvendelige kodestumper”?

Definér og brug Bash-funktioner til at samle kommandoer i genanvendelige byggesten med parametre til din shell. Du øver dig i Linux-kommandolinjen og Bash-scripting på ekspertniveau med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Linux-kommandolinjen og Bash-scripting på ekspertniveau?

Der kræves ingen tidligere erfaring. Linux-kommandolinjen og Bash-scripting på ekspertniveau på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Shell-funktioner og genanvendelige kodestumper”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Linux-kommandolinjen og Bash-scripting på ekspertniveau-lektion?

Ja. Alle Linux-kommandolinjen og Bash-scripting på ekspertniveau-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Jobstyring (bg, fg, jobs)
  2. Shell-udvidelse og globbing
  3. Aliaser og brugerdefinerede prompts
  4. Shell-funktioner og genanvendelige kodestumper
← Tilbage til Linux-kommandolinjen og Bash-scripting på ekspertniveau