DevOps-bootcamp · Les

Shellfuncties en herbruikbare snippets

Definieer en gebruik Bash-functies om opdrachten te bundelen in herbruikbare bouwstenen met parameters voor uw shell.

Les 4 van 413 stappen

Shellfuncties en herbruikbare snippets is een gratis DevOps-bootcamp-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject DevOps-bootcamp. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Waarom shell-functies?

Een shell-functie groepeert een aantal opdrachten onder één naam, zodat u ze opnieuw kunt gebruiken zonder ze opnieuw te typen.

  • Sneller dan opdrachten kopiëren en plakken
  • Overzichtelijker dan lange aliassen
  • Kan argumenten accepteren, in tegenstelling tot aliassen
mkcd() {
  mkdir -p "$1" && cd "$1"
}

Een functie definiëren

De eenvoudigste vorm gebruikt de syntaxis name() { ... }. Opdrachten tussen de accolades worden uitgevoerd wanneer u de functie op naam aanroept.

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

Functieargumenten

Functies ontvangen positionele parameters, net als scripts: $1, $2. $# is het aantal en $@ wordt uitgebreid naar alle argumenten.

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

Retourwaarden en afsluitstatus

Functies geven een afsluitstatus terug via return N (0-255). Gebruik deze voor controles op geslaagd/mislukt, niet om gegevens terug te geven.

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

Uitvoer teruggeven via echo

Omdat return alleen een statuscode doorgeeft, wordt echte uitvoer afgedrukt en vastgelegd met $( ).

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

Lokale variabelen

Variabelen binnen functies zijn standaard globaal. Gebruik local om het bereik van een variabele tot de functie te beperken en uw shell niet te vervuilen.

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

Standaardwaarden voor argumenten

Gebruik parameterexpansie ${1:-default} om terug te vallen op een standaardwaarde wanneer een argument ontbreekt.

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

Functies versus aliassen

Aliassen vervangen simpelweg tekst en kunnen niet netjes positionele argumenten verwerken. Functies kunnen vertakkingen en lussen gebruiken en invoer verwerken.

  • Gebruik een alias voor een vaste snelkoppeling
  • Gebruik een functie wanneer je logica of argumenten nodig hebt
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }

Functies blijvend maken

Functies die je bij de prompt definieert, verdwijnen wanneer de shell wordt afgesloten. Voeg ze toe aan ~/.bashrc zodat ze in elke sessie beschikbaar zijn.

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

Functies weergeven en verwijderen

declare -F geeft functienamen weer; declare -f name toont de inhoud. Verwijder een functie met unset -f name.

declare -F
declare -f greet
unset -f greet

Functies combineren

Functies kunnen andere functies aanroepen, waardoor kleine herbruikbare onderdelen ontstaan die je kunt combineren tot grotere hulpmiddelen.

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

Korte controle

Test je begrip van shellfuncties.

Samenvatting

Je hebt geleerd herbruikbare shell-functies te bouwen:

  • Definieer ze met name() { ... } en roep ze aan met hun naam
  • Gebruik $1, $@, $# voor argumenten en return voor de status
  • Beperk de reikwijdte van variabelen met local en geef gegevens terug via echo
  • Maak ze blijvend in ~/.bashrc en bekijk ze met declare -f
Gratis beginnen

Leer DevOps-bootcamp met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
142
Lessen
568

Veelgestelde vragen

Is de les “Shellfuncties en herbruikbare snippets” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad DevOps-bootcamp, waaronder “Shellfuncties en herbruikbare snippets”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus DevOps-bootcamp bevat in totaal 4 lessen.

Wat leer ik in “Shellfuncties en herbruikbare snippets”?

Definieer en gebruik Bash-functies om opdrachten te bundelen in herbruikbare bouwstenen met parameters voor uw shell. Je oefent met DevOps-bootcamp door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met DevOps-bootcamp te beginnen?

Ervaring vooraf is niet nodig. DevOps-bootcamp op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Shellfuncties en herbruikbare snippets”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over DevOps-bootcamp?

Ja. Elke les over DevOps-bootcamp bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Jobbeheer (bg, fg, jobs)
  2. Shell-expansie en globbing
  3. Aliassen en aangepaste prompts
  4. Shellfuncties en herbruikbare snippets
← Terug naar DevOps-bootcamp