L'istruzine condizionale fondamentale
if..then..elif..else..fi � leggermente diversa dalla notazione standard del C. La sua struttura �:
if [condizione1]; then
codice1
elif [condizione2]; then
codice2
else
codice3
fi
Il significato dei vari comandi � il seguente:
- if: esegue codice1 se la [condizione1] � vera.
- then: indica dove inizia il codice da eseguire in base alla condizione.
- elif: equivalente a else if in C. Esegue codice2 se [condizione2] � vera, ma [condizione1] non � vera. Conclude anche la porzione di codice eseguita dal precedente if / elif.
- else: esegue codice3 se nessuna delle precedenti condizioni � vera.
- fi: chiude il blocco condizionale.
Il seguente script verifica che un file esista:
#!/bin/bash
if [ -f topolino.c ];
then
cat topolino.c
else
echo "Il file non esiste"
fi
Controlli sui file
Le condizioni sono sempre scritte all'interno di parentesi quadre. Da notare che la parentesi di apertura deve essere sempre seguita da uno spazio, e quella di chiusura preceduta da uno spazio.
Esistono una serie di indicatori che permettono di verificare condizioni sui file, secondo la sintassi:
[ controllo /etc/file_da_controllare]
Tali controlli sono:
Controllo | Significato |
-d: | Verifica che il file sia una directory |
-e: | Verifica che il file esista |
-f: | Verifica che il file sia regolare |
-g: | Ccontrolla se il bit SGID � impostato |
-r: | Verifica che il file abbia i permessi di lettura per l'utente che esegue lo script |
-s: | Verifica che la dimensione del file non sia 0 |
-u: | Verifica se il bit SUID � impostato |
-w: | Verifica che il file sia scrivibile |