Istruzioni IF

Introduzione al Bash Scripting

Alex Scriven

Data Scientist

IF di base

Una IF base in Bash ha questa struttura:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

Due consigli:

  • Spazi tra parentesi quadre ed elementi della condizione (prima riga)
  • Punto e virgola dopo la parentesi ];
Introduzione al Bash Scripting

IF e stringhe

Possiamo fare un confronto tra stringhe in un IF:

x="Queen"

if [ $x == "King" ]; then
echo "$x è un King!"
else echo "$x non è un King!" fi
Queen non è un King!

Puoi anche usare != per “diverso da”

Introduzione al Bash Scripting

IF aritmetiche (opzione 1)

Le IF aritmetiche possono usare le doppie parentesi tonde:

x=10

if (($x > 5)); then echo "$x è maggiore di 5!" fi
10 è maggiore di 5!
Introduzione al Bash Scripting

IF aritmetiche (opzione 2)

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 a
Introduzione al Bash Scripting

Esempio di IF aritmetica

Qui 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!
Introduzione al Bash Scripting

Altri flag condizionali di Bash

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 è scrivibile

E molti altri:

Introduzione al Bash Scripting

Uso di AND e OR in Bash

 

Per combinare condizioni (AND) o usare OR in Bash si usano questi simboli:

  • && per AND
  • || per OR
Introduzione al Bash Scripting

Condizioni multiple

In 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
Introduzione al Bash Scripting

IF e programmi da riga di comando

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!
Introduzione al Bash Scripting

IF con shell annidata

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

Passons à la pratique !

Introduzione al Bash Scripting

Preparing Video For Download...