//I condizionali in Bash

I condizionali in Bash

0 votes
Share on FacebookShare on Google+Tweet about this on TwitterEmail this to someonePrint this page

This post has already been read 909 times!

Giorni fa avevo scritto un articolo in cui raccontavo uno degli aspetti che ho visto meno usare della linea di comando, la creazione di funzioni, anche se con la sola dichiarazione di funzioni poco possiamo giocare, quindi ho pensato di introdurre i condizionali in bash.

La sintassi dei condizionali è semplice :

if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi

quindi in basso possiamo vedere un esempio :

matteo@Duff:~$ function testworld () {
> laTerraEPiatta=$1
> if [ $laTerraEPiatta -eq 1 ]
> then echo 'Attento che cadi !!!'
> else echo 'vai tranquillo !!!!'
> fi
> }
matteo@Duff:~$

Come possiamo provare, la funzione fa esattamente quelo che ci aspettiamo :

matteo@Duff:~$ testworld 0
vai tranquillo !!!!
matteo@Duff:~$ testworld 1
Attento che cadi !!!
matteo@Duff:~$

questa non è la unica forma di scriere la funzione, infatti puo essere scritta direttamente sulla stessa riga e otterremo lo stesso effetto, ad esempio :

 

matteo@Duff:~$ function testworld () { laTerraEPiatta=$1; if [ $laTerraEPiatta -eq 1 ]; then echo 'Attento che cadi !!!'; else echo 'vai tranquillo !!!!'; fi; }
matteo@Duff:~$

qui in basso vi riassumo i test che piu comunemente vengono usati in bash tra variabili :

[ -a FILE ]	Vero se un file esiste
[ -d FILE ]	Vero se ìl path è una directory ed esiste
[ -z STRING ]	Vero se la stringa ha lunghezza 0
[ STRING1 == STRING2 ]	Vero se la stringa1 è uguale alla stringa2
[ ARG1 OP ARG2 ]	Arg1 e Arg2 sono valori Interi e OP puo essere {-eq, -ne, -lt, -le, -gt or -ge}  dove il significato è rispettivamente {uguale,diverso,minore che, strettamente minore uguale che strettamente maggiore e maggiore/uguale} 

per una lista completa dei test che possono essere fatti tra variabili vi rimando al Bash Beginner Guide.