DevOps-bootcamp · Lektion

Skalfunktioner och återanvändbara kodsnuttar

Definiera och använd Bash-funktioner för att paketera kommandon i återanvändbara, parametriserade byggblock för skalet.

Lektion 4 av 413 steg

Skalfunktioner och återanvändbara kodsnuttar är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Varför skalfunktioner?

En skalfunktion samlar flera kommandon under ett enda namn så att ni kan återanvända dem utan att skriva om dem.

  • Snabbare än att kopiera och klistra in kommandon
  • Renare än långa alias
  • Kan ta emot argument, till skillnad från alias
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Definiera en funktion

Den enklaste formen använder syntaxen name() { ... }. Kommandona inom klamrarna körs när ni anropar funktionen med dess namn.

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

Funktionsargument

Funktioner tar emot positionsparametrar precis som skript: $1, $2. $# är antalet och $@ expanderas till alla argument.

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

Returvärden och avslutningsstatus

Funktioner returnerar en avslutningsstatus via return N (0–255). Använd den för att kontrollera om något lyckades eller misslyckades, inte för att returnera data.

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

Returnera utdata med echo

Eftersom return endast skickar en statuskod skrivs verkliga utdata ut och fångas med $( ).

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

Lokala variabler

Som standard är variabler i funktioner globala. Använd local för att begränsa en variabel till funktionen och undvika att förorena skalet.

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

Standardvärden för argument

Använd parameterexpansionen ${1:-default} för att använda ett standardvärde när ett argument saknas.

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

Funktioner jämfört med alias

Alias ersätter helt enkelt text och kan inte hantera positionsargument på ett smidigt sätt. Funktioner kan förgrena sig, loopa och bearbeta indata.

  • Använd ett alias för en fast genväg
  • Använd en funktion när du behöver logik eller argument
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Göra funktioner beständiga

Funktioner som definieras vid prompten försvinner när skalet avslutas. Lägg till dem i ~/.bashrc så att de blir tillgängliga i varje session.

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

Visa och ta bort funktioner

declare -F listar funktionsnamn och declare -f name visar funktionskroppen. Ta bort en funktion med unset -f name.

declare -F
declare -f greet
unset -f greet

Kombinera funktioner

Funktioner kan anropa andra funktioner, vilket gör det möjligt att kombinera små, återanvändbara delar till större verktyg.

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

Snabbkontroll

Testa dina kunskaper om skalfunktioner.

Sammanfattning

Du har lärt dig att bygga återanvändbara funktioner i skalet:

  • Definiera med name() { ... } och anropa med namnet
  • Använd $1, $@ och $# för argument samt return för status
  • Begränsa variablers räckvidd med local och returnera data via echo
  • Gör dem beständiga i ~/.bashrc och granska dem med declare -f
Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Skalfunktioner och återanvändbara kodsnuttar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Skalfunktioner och återanvändbara kodsnuttar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Skalfunktioner och återanvändbara kodsnuttar”?

Definiera och använd Bash-funktioner för att paketera kommandon i återanvändbara, parametriserade byggblock för skalet. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Skalfunktioner och återanvändbara kodsnuttar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Jobbhantering (bg, fg, jobs)
  2. Skalexpansion och globbning
  3. Alias och anpassade promptar
  4. Skalfunktioner och återanvändbara kodsnuttar
← Tillbaka till DevOps-bootcamp