Como escribir declaracións IF nun script Bash

Comandos, sintaxe e exemplos

Cunha declaración if, que é un tipo de declaración condicional, pode realizar accións diferentes segundo as condicións especificadas. De feito, dá ao sistema a capacidade de tomar decisións.

Un exemplo da forma máis sinxela dunha declaración if sería:

count = 5 se [$ count == 5] eco "$ count" fi

Neste exemplo, a variable "contar" úsase para especificar unha condición que se usa como parte da instrución if. Antes de executar a instrución if, a variable "contar" ten o valor "5". A instrución if verifica se o valor de "contar" é "5". Se é o caso, a declaración entre as palabras "entón" e "fi" son executadas, se non, executáronse as declaracións seguintes á instrución if. A palabra clave "fi" é "si" escrito cara atrás. A linguaxe de script bash usa esta convención para marcar o final dunha expresión complexa, como unha declaración if-statement ou case-statements.

A declaración "eco" imprime o seu argumento, neste caso, o valor da variable "contar", á xanela do terminal. A indentación do código entre as palabras clave do if-statement mellora a lexibilidade pero non é necesario.

Se ten unha situación na que se debe executar unha peza de código só se unha condición non é verdadeira, pode usar a palabra clave "else" nunha declaración if, como neste exemplo:

count = 5 se [$ count == 5] entón eco "$ count" else echo "count non é 5" fi

Se a condición "$ count == 5" é verdadeira, o sistema imprime o valor da variable "count", se non, imprime a cadea "count is not 5".

Se desexa diferenciar entre varias condicións, pode usar a palabra clave "elif", que se deriva de "else if", como neste exemplo:

se [$ count == 5] entón eco "count is five" elif [$ count == 6] echo "count is six" else echo "none of the above" fi

Se "contar" é "5", o sistema imprime "contar é cinco". Se "count" non é "5" pero "6", o sistema imprime "count is six". Se non é nin "5" nin "6", o sistema imprime "ningún dos anteriores".

Como podes adiviñar, pode ter calquera número de cláusulas "elif". Un exemplo con varias condicións de "elif" sería:

se [$ count == 5] entón eco "count is five" elif [$ count == 6] echo "count is six" elif [$ count == 7] echo "count is seven" elif [$ count = = 8] entón eco "count is eight" elif [$ count == 9] echo "count is nine" else echo "none of the above" fi

Unha forma máis compacta de escribir tales declaracións con múltiples condicións é o método do caso . Funciona de forma similar á declaración if con múltiples cláusulas "elif" pero é máis concisa. Por exemplo, o anaco de código anterior pódese reescribir coa declaración de "caso" da seguinte forma:

caso "$ contar" en 5) eco "contar é cinco" ;; 6) echo "count is six" ;; 7) eco "contar sete" ;; 8) eco "count is eight" ;; 9) eco "count is nine" ;; *) eco "ningún dos anteriores" esac

Se as declaracións úsanse frecuentemente dentro de for-loops ou while-loops como neste exemplo:

count = 1 done = 0 mentres [$ count -le 9] faga durmir 1 ((contar + + +)) se [$ count == 5] entón continúa echo "$ count" echo feito Terminado

Tamén pode ter instrucións aniñadas. A declaración sinxela máis sinxela é a forma: se ... entón ... outra ... se ... entón ... fi ... fi. Non obstante, if-statement pode anidar con complexidade arbitraria.

Vexa tamén como pasar argumentos a un script bash , que mostra como usar os condicionais para procesar os parámetros pasados ​​da liña de comandos.

O shell bash ofrece outras construcións de programación, como for-loops , while-loops e expresións aritméticas .