Shellfuncties en herbruikbare snippets
Definieer en gebruik Bash-functies om opdrachten te bundelen in herbruikbare bouwstenen met parameters voor uw shell.
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"
}
greetFunctieargumenten
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.txtRetourwaarden 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; fiUitvoer 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 greetFuncties 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"
}
deployKorte 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 enreturnvoor de status - Beperk de reikwijdte van variabelen met
localen geef gegevens terug viaecho - Maak ze blijvend in
~/.bashrcen bekijk ze metdeclare -f
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
- Jobbeheer (bg, fg, jobs)
- Shell-expansie en globbing
- Aliassen en aangepaste prompts
- Shellfuncties en herbruikbare snippets