Introduzione al Bash Scripting
Alex Scriven
Data Scientist
Una IF base in Bash ha questa struttura:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Due consigli:
];Possiamo fare un confronto tra stringhe in un IF:
x="Queen"if [ $x == "King" ]; thenecho "$x è un King!"else echo "$x non è un King!" fi
Queen non è un King!
Puoi anche usare != per “diverso da”
Le IF aritmetiche possono usare le doppie parentesi tonde:
x=10if (($x > 5)); then echo "$x è maggiore di 5!" fi
10 è maggiore di 5!
Le IF aritmetiche possono anche usare le parentesi quadre e dei flag aritmetici invece di (>, <, =, != ecc.):
-eq uguale a-ne diverso da-lt minore di-le minore o uguale a-gt maggiore di-ge maggiore o uguale aQui rifacciamo l’ultimo esempio con le parentesi quadre:
x=10
if [ $x -gt 5 ]; then
echo "$x è maggiore di 5!"
fi
10 è maggiore di 5!
Bash include anche vari flag sui file come:
-e se il file esiste-s se il file esiste e ha dimensione maggiore di zero-r se il file esiste ed è leggibile-w se il file esiste ed è scrivibileE molti altri:
Per combinare condizioni (AND) o usare OR in Bash si usano questi simboli:
&& per AND|| per ORIn Bash puoi concatenare condizioni così:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x è maggiore di 5 e minore di 11!"
fi
Oppure usare le doppie parentesi quadre:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x è maggiore di 5 e minore di 11!"
fi
Puoi anche usare molti programmi da riga di comando direttamente nella condizione, togliendo le parentesi quadre.
Per esempio, se il file words.txt contiene 'Hello World!':
if grep -q Hello words.txt; then
echo "Hello è presente!"
fi
Hello è presente!
Oppure puoi richiamare una shell-nella-shell per la condizione.
R riscriviamo l’ultimo esempio: produce lo stesso risultato.
if $(grep -q Hello words.txt); then
echo "Hello è presente!"
fi
Hello è presente!
Introduzione al Bash Scripting