Shell-funktioner og genanvendelige kodestumper
Definér og brug Bash-funktioner til at samle kommandoer i genanvendelige byggesten med parametre til din shell.
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"
}
greetFunktionsargumenter
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.txtReturvæ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; fiReturnering 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 greetSammensæ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"
}
deployHurtig 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 samtreturntil status - Begræns variablers rækkevidde med
local, og returnér data viaecho - Gør funktionerne permanente i
~/.bashrc, og undersøg dem meddeclare -f
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
- Jobstyring (bg, fg, jobs)
- Shell-udvidelse og globbing
- Aliaser og brugerdefinerede prompts
- Shell-funktioner og genanvendelige kodestumper