Funzioni della shell e snippet riutilizzabili
Definisca e utilizzi funzioni Bash per racchiudere i comandi in blocchi riutilizzabili e parametrizzati per la shell.
Funzioni della shell e snippet riutilizzabili è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Perché usare le funzioni della shell
Una funzione della shell raggruppa una serie di comandi sotto un unico nome, così può riutilizzarli senza riscriverli.
- Più veloce del copia e incolla dei comandi
- Più ordinata degli alias lunghi
- Può accettare argomenti, a differenza degli alias
mkcd() {
mkdir -p "$1" && cd "$1"
}Definire una funzione
La forma più semplice usa la sintassi name() { ... }. I comandi tra le parentesi graffe vengono eseguiti quando si richiama la funzione tramite il nome.
greet() {
echo "Hello from a function"
}
greetArgomenti delle funzioni
Le funzioni ricevono parametri posizionali proprio come gli script: $1, $2. $# indica il numero di argomenti e $@ li espande tutti.
backup() {
cp "$1" "$1.bak"
echo "Backed up $1"
}
backup notes.txtValori restituiti e stato di uscita
Le funzioni restituiscono uno stato di uscita tramite return N (0-255). Lo si utilizza per verificare il successo o il fallimento, non per restituire dati.
is_root() {
[ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fiRestituire l'output tramite echo
Poiché return trasporta solo un codice di stato, l'output effettivo viene stampato e catturato con $( ).
timestamp() {
date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"Variabili locali
Per impostazione predefinita, le variabili all'interno delle funzioni sono globali. Utilizzare local per limitare una variabile alla funzione ed evitare di inquinare la shell.
count_lines() {
local n
n=$(wc -l < "$1")
echo "$1 has $n lines"
}Valori predefiniti degli argomenti
Utilizzare l'espansione dei parametri ${1:-default} per ricorrere a un valore predefinito quando manca un argomento.
say() {
local msg="${1:-Hello World}"
echo "$msg"
}
say
say "Custom message"Funzioni e alias
Gli alias si limitano a sostituire testo e non gestiscono correttamente gli argomenti posizionali. Le funzioni possono eseguire diramazioni, cicli ed elaborare input.
- Usi un alias per una scorciatoia fissa
- Usi una funzione quando servono logica o argomenti
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }Rendere persistenti le funzioni
Le funzioni definite al prompt scompaiono quando la shell termina. Le aggiunga a ~/.bashrc per renderle disponibili in ogni sessione.
# Append to ~/.bashrc
extract() {
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "Unknown format" ;;
esac
}Elencare e rimuovere le funzioni
declare -F elenca i nomi delle funzioni; declare -f name ne mostra il corpo. Rimuova una funzione con unset -f name.
declare -F
declare -f greet
unset -f greetComporre insieme le funzioni
Le funzioni possono chiamare altre funzioni, consentendo di combinare piccoli componenti riutilizzabili in strumenti più complessi.
log() { echo "[$(date +%T)] $*"; }
deploy() {
log "Starting deploy"
log "Done"
}
deployVerifica rapida
Verifichi la Sua comprensione delle funzioni della shell.
Riepilogo
Ha imparato a creare funzioni riutilizzabili della shell:
- Definirle con
name() { ... }e chiamarle per nome - Usare
$1,$@,$#per gli argomenti ereturnper lo stato - Limitare l'ambito delle variabili con
locale restituire dati tramiteecho - Renderle persistenti in
~/.bashrce ispezionarle condeclare -f
Domande Frequenti
La lezione «Funzioni della shell e snippet riutilizzabili» è gratuita?
Sì — il testo completo di «Funzioni della shell e snippet riutilizzabili» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Funzioni della shell e snippet riutilizzabili»?
Definisca e utilizzi funzioni Bash per racchiudere i comandi in blocchi riutilizzabili e parametrizzati per la shell. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Funzioni della shell e snippet riutilizzabili»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Controllo dei job (bg, fg, jobs)
- Espansione della shell e globbing
- Alias e prompt personalizzati
- Funzioni della shell e snippet riutilizzabili