Sconto del 50%. tutti i piani, tempo limitato. A partire da $2.48/mo
11 minuti rimasti
Server e sistema operativo

Spiegazione delle funzioni Bash: sintassi, esempi e casi d'uso

Kelly Watson By Kelly Watson 11 minuti di lettura Aggiornato il 14 dicembre 2025
Illustrazione 3D astratta di blocchi di codice blu brillante assemblati in una struttura modulare, che rappresenta le funzioni Bash

Le funzioni Bash raggruppano i comandi correlati sotto un unico nome. Quando chiami quel nome, viene eseguito l'intero blocco. Puoi passare argomenti per personalizzare il comportamento e restituire valori per comunicare i risultati. Ciò mantiene il tuo codice pulito e facile da mantenere.

Linux domina gli ambienti server a livello globale, quindi padroneggiare le funzioni Bash è importante ora più che mai. Le funzioni trasformano gli script disordinati in un'automazione pulita e riutilizzabile.

Questa guida ti guida dalla sintassi di base ai casi d'uso avanzati. Imparerai come dichiarare funzioni, passare parametri, gestire valori restituiti e vedere dieci esempi pratici che puoi utilizzare nei tuoi script.

TL;DR

  • Le funzioni Bash sono blocchi di codice denominati che puoi riutilizzare negli script
  • Definire le funzioni utilizzando nome_funzione() { comandi; } sintassi
  • Passa argomenti usando $1, $2, $3 parametri posizionali
  • Le funzioni migliorano la leggibilità, la modularità e la manutenzione del codice
  • Utilizzo ritorno per uscire dalle funzioni e comunicare i codici di stato (0 = successo, diverso da zero = fallimento)
  • Le funzioni possono essere condivise tra gli script utilizzando fonte or esportare -f
  • Esempi pratici includono il backup dei file, il monitoraggio del disco, la convalida dell'input e il controllo del servizio

Cos'è lo scripting Bash?

Illustrazione 3D di uno scorrimento digitale con la scrittura del codice Bash luminoso, che rappresenta l'automazione dello scripting Bash.

Lo scripting Bash è un metodo di automazione delle attività che utilizza la shell Bash. Funziona come interfaccia della riga di comando predefinita per Linux e rimane uno strumento standard su macOS. Uno script Bash è un programma codificato nel linguaggio di scripting Bash, che può essere eseguito in un terminale o come file di script autonomo.

Con L'utilizzo del desktop Linux è in costante crescita e il sistema operativo che domina gli ambienti server in tutto il mondo, le competenze di scripting Bash sono diventate preziose per i professionisti IT. Il linguaggio si integra bene con gli strumenti DevOps come Docker, Kubernetes e pipeline CI/CD.

Lo scripting Bash ti consente di eseguire attività da semplici comandi a complesse automazioni e amministrazioni di sistema. Puoi automatizzare attività ripetitive, sviluppare script di manutenzione, costruire pipeline di distribuzione, gestire sistemi software e manipolare dati.

Cos'è una funzione Bash?

Illustrazione digitale futuristica che mostra i dati disordinati della riga di comando organizzati da un cancello di elaborazione luminoso, che simboleggia il funzionamento di una funzione Bash, con spazio vuoto a sinistra.

Una funzione Bash può essere definita come un insieme di comandi definiti all'interno di uno script Bash o impostati in modo interattivo al prompt dei comandi, a seconda del caso d'uso. Una volta definita, una funzione Bash può essere richiamata più volte all'interno dello script o in altri script, proprio come un normale comando di shell.

Le funzioni Bash ti consentono di creare blocchi di codice riutilizzabili in grado di eseguire operazioni complesse, organizzare il tuo codice e semplificare i tuoi script. Puoi passare argomenti a una funzione Bash, quindi utilizzarli all'interno della funzione per eseguire operazioni. Le funzioni Bash restituiscono valori che puoi utilizzare altrove nello script.

Copriremo diversi stili di implementazione specifici, inclusi funzione_semplice per la logica di base, input_semplici per la gestione degli argomenti e strutture avanzate come fibonnaci_recursion.

Fondamenti delle funzioni Bash è importante per qualsiasi amministratore di sistema o ingegnere DevOps che lavora con l'automazione. Le sezioni seguenti trattano ciascuno di questi tipi in dettaglio.

Perché utilizzare le funzioni Bash?

Ingranaggio blu brillante con simboli di ottimizzazione che guidano una macchina per il codice, che rappresenta l'efficienza e la velocità ottenute utilizzando le funzioni Bash.

Ora che abbiamo trattato la definizione delle funzioni Bash, passiamo in rassegna i loro principali vantaggi. Questa sezione ti aiuta a capire dove le funzioni sono più utili.

Riutilizzabilità

Crei una funzione Bash e hai uno strumento potente. Puoi scrivere un blocco di codice una volta e riutilizzarlo più volte all'interno del tuo script o anche in altri script.

Ciò rende il tuo codice più efficiente e fa risparmiare tempo eliminando la duplicazione. Mantenere il tuo codice diventa più semplice poiché devi solo modificare la funzione in un unico posto.

Leggibilità

Gli script complessi possono essere difficili da decifrare. Le funzioni Bash risolvono questo problema suddividendo lo script in parti più piccole e più gestibili.

Ogni funzione ha uno scopo specifico con un nome descrittivo che ne spiega il ruolo. Ciò aiuta te e gli altri a comprendere e gestire il codice più facilmente.

Modularità

Le funzioni organizzano il tuo codice. Puoi dividere la logica in moduli più piccoli, mantenendo la struttura dello script pulita e facile da gestire.

E se devi aggiungere una nuova funzionalità, puoi farlo senza interferire con altre parti dello script. Quando è il momento di rimuovere o modificare la funzionalità, il resto dello script rimane intatto.

Parametri della funzione Bash

Puoi passare argomenti, o parametri, alle tue funzioni. Questi argomenti consentono alle tue funzioni di adattarsi ed eseguire azioni diverse in base agli input che ricevono.

Ciò apre molte possibilità rendendo le tue funzioni più versatili e adattabili. Invece di scrivere codice simile più volte, scrivi una funzione che gestisce input diversi.

Come e dove utilizzare le funzioni Bash?

Diagramma di flusso in vetro 3D che mostra l'esecuzione dello script che si ramifica in un blocco funzione e ritorna, visualizzando come le funzioni Bash vengono utilizzate nel flusso logico.

Ora entriamo un po' nel tecnico con la nostra definizione e iniziamo con un breve esempio di come creare funzioni Bash. La seguente sintassi può essere utilizzata negli ambienti basati su Unix. Se lavori su Windows, puoi installa Linux Bash su Windows 10 seguire questi esempi.

Creazione di una funzione Bash

Inizia utilizzando la seguente struttura di comando:

nome_funzione () {

    # comandi vanno qui

}

 

Una volta creata la funzione, puoi utilizzarla nel tuo codice in qualsiasi momento. Ecco un esempio funzionante:

salutare () {

    echo "Ciao, $ 1!"

}

 

Chiama questa funzione con saluta il mondo per produrre "Hello, World!" IL $1 rappresenta il primo argomento passato alla funzione.

Ecco alcuni altri esempi pratici che puoi utilizzare nei tuoi script:

# Crea un backup di qualsiasi file

file_di_backup () {

    cp “$1” “$1.bak”

    echo "Backup creato: $ 1.bak"

}

 

# Controlla se esiste una directory, crea se non esiste

garantire_dir () {

    Se [ ! -d “$1”]; Poi

        mkdir -p “$1”

        echo "Directory creata: $1"

    fi

}

 

# Registra i messaggi con timestamp

messaggio_log () {

    echo “[$(data ‘+%Y-%m-%d %H:%M:%S’)] $1”

}

 

Puoi definire queste funzioni Bash personalizzate una volta e chiamarle quando necessario nel tuo script.

Elementi essenziali della sintassi delle funzioni

Le funzioni si comportano come mini-script all'interno dello script principale, ma condividono la memoria della shell. Tieni a mente questi tre comportamenti specifici quando li scrivi.

Ambito variabile (locale o globale)

Le variabili all'interno delle funzioni sono globali per impostazione predefinita. Se definisci my_var="prova" all'interno di una funzione, sovrascrive qualsiasi esistente mia_var nella tua sceneggiatura. Usalo sempre locale confinare le variabili alla funzione previene gli effetti collaterali:

local my_var="valore"

Parametri posizionali

Le funzioni leggono gli argomenti utilizzando lo stesso $1, $2, E $@ variabili come script. Questi sono locali alla funzione e vengono ripristinati quando la funzione esce. Gli argomenti originali dello script non sono accessibili all'interno della funzione a meno che non li passiate esplicitamente.

Valori restituiti

Le funzioni Bash non restituiscono dati come le funzioni Python o JavaScript. IL ritorno il comando imposta solo uno stato di uscita (0-255) per indicare il successo o il fallimento. Per restituire dati effettivi (come una stringa o un calcolo), eco il risultato e catturarlo quando si chiama la funzione:

risultato=$(mia_funzione)

I 10 migliori esempi utili di funzioni Bash

Ora che hai compreso le funzioni Bash e come crearle, ecco dieci esempi pratici che puoi aggiungere ai tuoi script. Ciascuna funzione risolve un problema comune e dimostra la struttura, gli argomenti e i valori restituiti corretti.

1. Funzione di backup dei file

Crea un backup con timestamp di qualsiasi file:

file_di_backup () {

    file locale="$1"

    backup locale="${file}.$(data +%Y%m%d_%H%M%S).bak"

    

    if [ -f “$file”]; Poi

        cp “$file” “$backup”

        echo "Backup creato: $backup"

        restituire 0

    altro

        echo "Errore: file non trovato"

        ritorno 1

    fi

}

 

Utilizzo: backup_file /etc/nginx/nginx.conf

2. Controllo della directory

Controlla se esiste una directory e la crea se necessario:

garantire_dir () {

    dir locale="$1"

    

    Se [ ! -d “$dir”]; Poi

        mkdir -p “$dir”

        echo "Creato: $dir"

    fi

}

 

Utilizzo: dir_assicurare /var/log/myapp

3. Registratore con timestamp

Aggiunge timestamp ai messaggi di registro per il debug:

messaggio_log () {

    livello locale="$1"

    messaggio locale="$2"

    echo “[$(data ‘+%Y-%m-%d %H:%M:%S’)] [$level] $messaggio”

}

 

Utilizzo: log_message “INFO” “Script avviato”

4. Monitoraggio dello spazio su disco

Controlla l'utilizzo del disco e avvisa se supera una soglia:

controlla_spazio_disco () {

    soglia locale="${1:-80}"

    utilizzo locale=$(df / | tail -1 | awk ‘{print $5}’ | tr -d ‘%’)

    

    if [“$utilizzo” -gt “$soglia”]; Poi

        echo "Avviso: utilizzo del disco a ${usage}%"

        ritorno 1

    fi

    restituire 0

}

 

Utilizzo: controlla_spazio_disco 90

5. Validatore di input

Verifica che l'input dell'utente non sia vuoto:

convalida_input () {

    input locale="$1"

    nome locale="$2"

    

    if [ -z “$input”]; Poi

        echo "Errore: $nome non può essere vuoto"

        ritorno 1

    fi

    restituire 0

}

 

Utilizzo: validate_input “$nome utente” “Nome utente”

6. Controllo dello stato del servizio

Controlla se un servizio è in esecuzione e segnala lo stato:

check_service () {

    servizio locale="$1"

    

    se systemctl è attivo –quiet “$servizio”; Poi

        echo "$service è in esecuzione"

        restituire 0

    altro

        echo "$service non è in esecuzione"

        ritorno 1

    fi

}

 

Utilizzo: check_service nginx

7. Estrattore di estensioni di file

Estrae l'estensione da un nome file:

get_estensione () {

    nome file locale="$1"

    echo "${nomefile##*.}"

}

 

Utilizzo: ext=$(get_extension “document.pdf”)

8. Tagliacorde

Rimuove gli spazi bianchi iniziali e finali dalle stringhe:

taglia_stringa () {

    str locale="$1"

    str="${str#"${str%%[![:spazio:]]*}"}"

    str="${str%"${str##*[![:spazio:]]}"}"

    eco "$str"

}

 

Utilizzo: clean=$(trim_string "ciao mondo")

9. Archiviatore di file sicuro

Sposta un file in una directory personalizzata $HOME/.trash invece di eliminarlo definitivamente. Aggiunge un timestamp al nome del file per impedire la sovrascrittura dei backup precedenti.

rimozione_sicura() {

    file locale="$1"

    cestino locale="$HOME/.trash"

    # Aggiungi il timestamp per evitare di sovrascrivere i file esistenti

    local new_name="$(basename "$file")_$(data +%s)"

    

    mkdir -p “$spazzatura”

 

    if [ -e “$file” ]; Poi

        mv “$file” “$cestino/$nuovo_nome”

        echo “Spostato nell'archivio: $file -> $cestino/$nuovo_nome”

    altro

        echo "Errore: $file non trovato"

        ritorno 1

    fi

}

 

Utilizzo: safe_remove old_script.sh

 

10. Reporter di stato

Dimostra il meccanismo di restituzione della funzione Bash per la gestione degli errori. Il valore restituito dalla funzione Bash indica successo (0) o fallimento (diverso da zero):

dati_processo () {

    file locale="$1"

    

    Se [ ! -f “$file”]; Poi

        ritorno 1

    fi

    

    # Elabora il file

    cat “$file” | wc -l

    restituire 0

}

 

# Controlla il valore restituito

process_data “data.txt”

se [$? -eq0]; Poi

    echo "Elaborazione completata"

altro

    echo "Elaborazione fallita"

fi

 

IL $? La variabile acquisisce lo stato di uscita dall'ultimo comando o chiamata di funzione.

Funzione Scopo Caratteristica fondamentale
backup_file Crea backup di file Denominazione con timestamp
garantire_dir Gestione delle directory Crea se mancante
log_messaggio Registrazione Prefisso del timestamp
controlla_spazio_disco Monitoraggio del sistema Avvisi di soglia
validare_input Convalida dell'input Controllo della stringa vuota
check_service Monitoraggio del servizio Integrazione di sistema
get_estensione Analisi delle stringhe Espansione dei parametri
trim_string Pulizia delle stringhe Rimozione degli spazi bianchi
safe_remove Cancellazione sicura Directory del cestino
process_data Gestione degli errori Valori restituiti

Esecuzione delle funzioni Bash su un VPS

Le funzioni Bash diventano potenti quando vengono eseguite su un ambiente server dedicato. Nostro VPS Linux ti offre accesso root completo per personalizzare il tuo ambiente shell, creare librerie di funzioni a livello di sistema e automatizzare le attività di gestione del server senza restrizioni.

Con un VPS è possibile memorizzare funzioni riutilizzabili /etc/profile.d/ per tutti gli utenti, pianifica script basati su funzioni tramite cron job e crea pipeline di automazione per la distribuzione e la manutenzione. Offriamo server in 12 sedi globali con velocità di rete fino a 40 Gbps e memoria DDR5, il che significa un'esecuzione degli script più rapida e un'elaborazione dei dati più fluida.

Questo livello di controllo rende un VPS ideale per chiunque sia interessato allo scripting di shell e all'automazione del sistema.

Conclusione

Le funzioni Bash sono fondamentali per creare script modulari e riutilizzabili. Ti consentono di raggruppare insieme comandi correlati e incapsulare una logica complessa per rendere il tuo codice più facile da leggere e gestire. Se gestisci l'infrastruttura cloud, automatizzi le pipeline di distribuzione o gestisci attività di amministrazione di sistema di routine, le funzioni ti aiutano a mantenere gli script organizzati ed efficienti.

In questo articolo abbiamo trattato le basi delle funzioni Bash, incluso come definirle e chiamarle, dieci esempi pratici di funzioni e casi d'uso comuni per aiutarti a iniziare con i tuoi progetti di automazione.

Combinato con strutture di controllo come il Bash if istruzione, le funzioni forniscono gli elementi costitutivi per un'automazione potente. Utilizzando le funzioni Bash nei tuoi script, puoi scrivere un codice più pulito e modulare, più facile da comprendere e mantenere.

Domande frequenti

Le funzioni Bash possono avere variabili locali?

SÌ. Le funzioni Bash possono avere variabili locali utilizzando la parola chiave local. Ciò limita l'ambito della variabile alla funzione, impedendole di influenzare le variabili con lo stesso nome all'esterno della funzione.

Le funzioni Bash possono essere ricorsive?

Sì, le funzioni Bash possono essere ricorsive. Bash ha una dimensione dello stack di chiamate predefinita relativamente piccola, quindi, a seconda delle funzioni ricorsive che hai in mente, potrebbe essere necessario aumentarla utilizzando il comando ulimit -s prima dell'esecuzione.

Posso utilizzare le funzioni Bash in altri script?

Sì, puoi condividere le funzioni Bash tra script utilizzando il comando source (o la sua abbreviazione .). Acquistando un file contenente le definizioni delle funzioni, rendi tali funzioni disponibili nello script chiamante. Per i processi secondari, utilizzare export -f nome_funzione per rendere accessibile la funzione.

Posso utilizzare le funzioni Bash nelle pipeline?

Sì, ma richiede passaggi specifici per i comandi esterni. All'interno di uno script, puoi reindirizzare i dati direttamente a una funzione (ad esempio, file cat | mia_funzione). Tuttavia, comandi come xargs o find -exec vengono eseguiti in un nuovo ambiente. Per utilizzare una funzione lì, è necessario esportarla (export -f my_func) e quindi invocare esplicitamente Bash (ad esempio, xargs bash -c 'my_func “$@”').

Cos'è una funzione di script di shell?

Una funzione di script di shell è un blocco di codice definito all'interno di uno script di shell che ha uno scopo specifico e può essere chiamato da varie parti dello script. Le funzioni offrono un grande valore in termini di modularità del codice, migliore riusabilità e manutenzione più semplice. Nel contesto dello scripting Bash, le funzioni sono incapsulate all'interno dello script complessivo.

Condividere

Altro dal blog

Continua a leggere.

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud Immagine di copertina con pannelli delle app attorno a un dashboard Cosmos.
Server e sistema operativo

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud: file, contenuti multimediali, password, automazione e altro!

Forse hai configurato Cosmos Cloud e ora vuoi vedere quali app si adattano bene ad esso, o forse non hai ancora deciso su Cosmos e vuoi solo vedere se si adatta bene al tuo ambiente di lavoro.

Nick ArgentoNick Argento 16 minuti di lettura
Copertina di Portainer e Cosmos Cloud per la gestione delle app Docker con diagramma di configurazione ibrida e operazioni al neon e blocchi di accesso.
Server e sistema operativo

Portainer vs Cosmos Cloud: la soluzione migliore per la gestione delle app Docker

Se conosci già Docker e desideri semplicemente un modo più semplice per eseguire uno stack di app in crescita, ecco la risposta breve a Portainer vs Cosmos Cloud. Portainer è la scelta più forte per direc

Nick ArgentoNick Argento 14 minuti di lettura
Cosmos Cloud vs CasaOS vs Umbrel presenta un grafico che mostra tre percorsi self-hosted all'interno di un mondo astratto di rete cloud.
Server e sistema operativo

Cosmos Cloud vs CasaOS vs Umbrel: quale piattaforma self-hosted si adatta alla tua configurazione?

La risposta breve è che CasaOS è ancora il punto di partenza più semplice, Umbrel ha l'atmosfera più pulita e curata e Cosmos Cloud ha più senso quando si desidera un controllo più stretto sul dominio.

Nick ArgentoNick Argento 11 minuti di lettura

Pronti per la distribuzione? A partire da $ 2,48 al mese.

Cloud indipendente, dal 2008. AMD EPYC, NVMe, 40 Gbps. Rimborso entro 14 giorni.