Com escriure Declaracions IF en una Bash-Script

Ordres, sintaxi i exemples

Amb una declaració if, que és un tipus de declaració condicional, podeu realitzar accions diferents segons les condicions especificades. Realment dóna al sistema la capacitat de prendre decisions.

Un exemple de la forma més simple d'una declaració if seria:

compte = 5 si [$ count == 5], feu eco "$ count" fi

En aquest exemple, la variable "recompte" s'utilitza per especificar una condició que s'utilitza com a part de la instrucció if. Abans que s'executi la declaració if, la variable "recompte" té assignat el valor "5". La instrucció if if comprova si el valor de "count" és "5". Si aquest és el cas, s'executa la declaració entre les paraules clau "llavors" i "fi", en cas contrari, s'executen totes les declaracions següents a la instrucció if. La paraula clau "fi" és "si" s'escriu enrere. El llenguatge de scripts bash utilitza aquesta convenció per marcar el final d'una expressió complexa, tal declaració if-statement o case-statements.

La instrucció "echo" imprimeix el seu argument, en aquest cas, el valor de la variable "compte", a la finestra del terminal. La indentació del codi entre les paraules clau del if-statement millora la llegibilitat però no és necessari.

Si teniu una situació on només s'ha d'executar una peça de codi si una condició no és certa, podeu utilitzar la paraula clau "else" en una declaració if, com en aquest exemple:

compte = 5 si [$ count == 5], feu eco "$ count" else echo "count no is 5" fi

Si la condició "$ count == 5" és certa, el sistema imprimeix el valor de la variable "count", en cas contrari imprimeix la cadena "count is not 5".

Si voleu diferenciar entre diverses condicions, podeu utilitzar la paraula clau "elif", que es deriva de "else if", com en aquest exemple:

si [$ count == 5], llavors eco "count is five" elif [$ count == 6] llavors echo "count is six" else echo "none of the above" fi

Si "contar" és "5", el sistema imprimeix "el recompte és de cinc". Si "contar" no és "5" sinó "6", el sistema imprimeix "el recompte és sis". Si no és "5" ni "6", el sistema imprimeix "cap dels anteriors".

Com haureu adivinat, podeu tenir qualsevol quantitat de clàusules "elif". Un exemple amb múltiples condicions de "elif" seria:

si [$ count == 5] llavors eco "count is five" elif [$ count == 6] llavors echo "count is six" elif [$ count == 7] llavors echo "count is seven" elif [$ count = = 8], llavors es fa eco "contar-se vuit" elif [$ count == 9] llavors eco "contar-ne nou" més fer-se eco "cap de les anteriors" fi

Una forma més compacta d'escriure aquestes declaracions amb múltiples condicions és el mètode del cas . Funciona de manera similar a la if-statement amb diverses clàusules "elif", però és més concís. Per exemple, el codi de la part anterior es pot tornar a escriure amb la declaració del "cas" de la manera següent:

cas "$ count" a 5) echo "count is five" ;; 6) echo "contar és sis" ;; 7) echo "el recompte és set"; 8) echo "contar és vuit" ;; 9) echo "count is nine" ;; *) ressò "cap dels anteriors" esac

Les expressions si s'utilitzen sovint a l'interior de for-loops o while-loops com en aquest exemple:

compte = 1 feta = 0 mentre que [$ count -le 9] duu a dormir 1 ((compte + + +)) si [$ count == 5], llavors continueu-fi "$ count" done echo Completed

També podeu tenir declaracions anades si. La instrucció ifest si més senzilla és de la forma: si ... llavors ... else ... if ... then ... fi ... fi. No obstant això, if-statement pot anidar amb complexitat arbitrària.

Vegeu també com passar els arguments a un script bash , que mostra com utilitzar els condicionals per processar paràmetres passats de la línia de comandaments.

El bash shell proporciona altres construccions de programació, com for-loops , while-loops i expressions aritmètiques .