Bash è una shell della riga di comando e un linguaggio di programmazione ampiamente utilizzato nei sistemi operativi basati su Unix. È uno strumento essenziale per gli amministratori di sistema e gli sviluppatori che devono automatizzare attività o eseguire operazioni complesse. Bash fornisce varie strutture di controllo come i cicli if-then-else, for e while che consentono di scrivere script che eseguono azioni diverse in base a condizioni, eseguire iterazioni su array o elenchi ed eseguire operazioni fino a quando non viene soddisfatta una condizione specifica.
In questo articolo discuteremo le diverse strutture di controllo di Bash e forniremo esempi pratici per illustrarne l’utilizzo.
Scrivere script Bash efficienti con strutture di controllo
Dichiarazioni if-then-else
Le istruzioni if-then-else sono una delle strutture di controllo di Bash più basilari. Consentono di eseguire diverse azioni in base a una condizione o a un insieme di condizioni. In Bash, le istruzioni if-then-else sono scritte usando le parole chiave if, then, else e fi. La parola chiave if viene utilizzata per specificare la condizione e la parola chiave then viene utilizzata per specificare l’azione da intraprendere se la condizione è vera. La parola chiave else viene utilizzata per specificare l’azione da intraprendere se la condizione è falsa. La parola chiave fi viene utilizzata per contrassegnare la fine del blocco if-then-else. Le istruzioni if-then-else sono estremamente utili negli script Bash, in quanto consentono di automatizzare le attività in base a condizioni o criteri specifici.
La sintassi di base dell’istruzione if-then-else è la seguente:
if condition
then
statement1
else
statement2
fi
In questo esempio, lo script verifica se la condizione è vera o falsa. Se è vero, viene eseguita istruzione1 e se è falsa, viene eseguita istruzione2.
Ecco un esempio che controlla se esiste un file e stampa un messaggio di conseguenza:
#!/bin/bash
if test -e "/home/fosslinux/Documents/my_backups/syslog_2.txt";
then
echo "File exists"
else
echo "File does not exist"
fi
Uso delle istruzioni condizionali
In questo esempio, lo script verifica se il file esiste utilizzando l’opzione -e e, in caso affermativo, stampa “File exists”. In caso contrario, stampa “File non esiste”.
Per loop
I cicli for in Bash vengono utilizzati per scorrere un elenco di elementi, come i file in una directory, ed eseguire una serie di azioni per ciascun elemento nell’elenco. La sintassi di base per un ciclo for di Bash è for var in list; eseguire comandi; Fatto. La variabile var è impostata su ciascun elemento nell’elenco ei comandi vengono eseguiti per ciascun elemento. In Bash, list può essere un intervallo di numeri, un elenco di nomi di file o nomi di directory o un elenco di stringhe separate da spazi. I cicli for possono essere estremamente utili per automatizzare attività che comportano l’iterazione di un numero elevato di elementi, come la ridenominazione di file o l’elaborazione di file di dati. Utilizzando i cicli For, puoi scrivere script più efficienti ed efficaci che possono farti risparmiare tempo e fatica nelle tue attività quotidiane.
La sintassi di base del ciclo for è la seguente:
for variable in list
do
statement
done
In questo esempio, lo script scorre gli elementi nell’elenco, assegna ogni elemento alla variabile ed esegue l’istruzione per ogni elemento.
Ecco un esempio che stampa i numeri da 1 a 5:
#!/bin/bash
for i in 1 2 3 4 5
do
echo $i
done
In questo esempio, lo script scorre i numeri da 1 a 5 e stampa ciascun numero utilizzando il comando echo.
Esempio per loop
Puoi anche usare il ciclo for per scorrere gli elementi in un array:
#!/bin/bash
array=("item1" "item2" "item3")
for i in "${array[@]}"
do
echo $i
done
In questo esempio, lo script scorre gli elementi nell’array e stampa ogni elemento utilizzando il comando echo.
Loop per interagire tra gli elementi
Mentre loop
Mentre i cicli in Bash vengono utilizzati per eseguire ripetutamente una serie di comandi fino a quando non viene soddisfatta una condizione specifica. La sintassi di base per un ciclo while Bash è condizione while; eseguire comandi; Fatto. I comandi all’interno del ciclo vengono eseguiti finché la condizione è vera. In Bash, la condizione può essere un confronto numerico o di stringa, un test di file o qualsiasi altro comando che restituisce un valore vero o falso. Mentre i cicli vengono spesso utilizzati negli script Bash per automatizzare attività che richiedono un’esecuzione continua fino a quando non viene soddisfatta una determinata condizione, come il monitoraggio di un file di registro o l’attesa di un evento specifico. Usando i cicli While, puoi scrivere script più efficienti ed efficaci che possono farti risparmiare tempo e fatica nelle tue attività quotidiane.
La sintassi di base del ciclo while è la seguente:
while condition
do
statement
done
In questo esempio, lo script controlla la condizione ed esegue l’istruzione ripetutamente finché la condizione non è falsa.
Ecco un esempio che stampa i numeri da 1 a 5 usando un ciclo while:
#!/bin/bash
i=1
while [ $i -le 5 ]
do
echo $i
i=$((i+1))
done
In questo esempio, lo script inizializza i a 1, verifica se i è minore o uguale a 5 utilizzando l’opzione -le, stampa i e incrementa i di 1 utilizzando la sintassi $((i+1)). Questo processo viene ripetuto finché i è maggiore di 5.
Durante l’utilizzo del ciclo
Puoi anche usare il ciclo while per leggere le righe da un file:
#!/bin/bash
while read line
do
echo $line
done < /home/fosslinux/Documents/myparameters.txt
In questo esempio, lo script legge ogni riga dal file myparameters.txt utilizzando il comando read e la assegna alla variabile line. Quindi stampa ogni riga usando il comando echo.
Leggere e stampare righe utilizzando il ciclo while
Altri suggerimenti utili per scrivere ottimi script bash utilizzando strutture di controllo
Pianificare in anticipo: Prima di scrivere il tuo script Bash, pianifica le strutture di controllo di cui avrai bisogno per portare a termine il tuo compito. Questo ti aiuterà a organizzare il tuo codice e renderà più facile la lettura e il debug.
Utilizzare la giusta struttura di controllo per l’attività: Scegli la struttura di controllo appropriata in base all’attività che desideri automatizzare. Ad esempio, usa le istruzioni If-then-else per la diramazione condizionale, i cicli For per l’iterazione di un elenco di elementi e i cicli While per l’esecuzione ripetuta di una serie di comandi finché non viene soddisfatta una condizione.
Mantieni il tuo codice organizzato: Usa indentazione e commenti per rendere il tuo codice più leggibile e più facile da capire. Ciò renderà anche più semplice la risoluzione di eventuali problemi che potrebbero sorgere.
Riduci al minimo l’utilizzo delle risorse: Evita di utilizzare comandi o operazioni ad alta intensità di risorse all’interno delle tue strutture di controllo, in quanto ciò può rallentare l’esecuzione dello script. Invece, usa comandi efficienti e leggeri quando possibile.
Testa il tuo codice: Testare sempre accuratamente il codice per assicurarsi che funzioni come previsto. Usa strumenti di debug come istruzioni echo o file di registro per aiutarti a risolvere eventuali problemi che potrebbero sorgere.
Conclusione
Le strutture di controllo di Bash come i cicli if-then-else, for e while sono potenti strumenti che consentono di scrivere script che eseguono operazioni complesse e automatizzano le attività. Utilizzando queste strutture di controllo, è possibile eseguire azioni diverse in base alle condizioni, scorrere matrici o elenchi ed eseguire operazioni finché non viene soddisfatta una condizione specifica.
In questo articolo, abbiamo discusso la sintassi di base dei cicli if-then-else, for e while e fornito esempi pratici per illustrarne l’utilizzo. Padroneggiando queste strutture di controllo, puoi scrivere script Bash efficienti ed efficaci che possono farti risparmiare tempo e fatica.
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.