cuando se trabaja con scripts de Bash y shell, es posible que necesite usar condiciones en su script.
en la programación, las condiciones son cruciales : se utilizan para afirmar si algunas condiciones son verdaderas o no.
en este tutorial, nos vamos a centrar en una de las sentencias condicionales del lenguaje Bash: la sentencia Bash if else.
vamos a ver cómo puede usar esta instrucción para ejecutar sus scripts condicionalmente.,
también aprenderá cómo puede usar sentencias Bash if else anidadas para crear código más complejo.
tabla de contenidos
instrucción Bash If Else
para ejecutar una instrucción Bash «if else», debe usar cuatro palabras clave diferentes : if, then, else y fi :
- if : representa la condición que desea verificar;
- Entonces : si la condición anterior es verdadera, ejecute un comando específico;
- else : si la condición anterior es false, ejecute otro comando;
- Fi : cierra la instrucción «If, Then, Else».,
Cuando utilice la instrucción» if else», necesitará encerrar condiciones entre corchetes simples o dobles.
if ]then <execute command>else <execute another command>fi
tenga en cuenta que la instrucción «ELSE» es opcional, si la omite, no se ejecutará nada si la condición se evalúa como false.
nota: debe separar la condición de los corchetes con un espacio, de lo contrario podría obtener un error de sintaxis.,
ejemplos If Else
ahora que sabe más sobre la declaración Bash «if else», veamos cómo puede usarla en ejemplos del mundo real.
en esta sección, vamos a construir un script que imprime un mensaje si es ejecutado por el usuario root.
si el script no es ejecutado por el usuario root, va a escribir otro mensaje personalizado.
para comprobar si el script es ejecutado por root, necesitamos ver si el UID de la persona que llama es cero.,
#!/bin/bash# If the user is root, its UID is zero.if then echo "You are root!"else echo "You are not root."fi
Como se indicó anteriormente, el «más» la declaración no es obligatoria.
si omitimos en nuestro script creado anteriormente, todavía podríamos ejecutar la primera sentencia «then».
#!/bin/bash# If the user is root, its UID is zero.if then echo "You are root!"fi
Ahora, lo que si desea añadir más declaraciones «if» a las secuencias de comandos?,
instrucción Bash If elif
la instrucción «If elif» se utiliza en Bash para añadir instrucciones «if» adicionales a sus scripts.,
para ejecutar una instrucción Bash «if elif», debe usar cinco palabras clave diferentes : if, then, elif, else y fi :
- if : representa la condición que desea verificar;
- then : si la condición anterior es verdadera, ejecute un comando específico;
- Elif : se usa para agregar una condición adicional a su instrucción;
- else: si las condiciones anteriores son falsas, ejecute otro comando;
- / li >
- Fi : cierra la instrucción «if, elif, then».,
if ]then <execute command>elif ]then <execute another command>else <execute default command>fi
de nuevo, la instrucción» ELSE » es opcional, por lo que es posible que desee omitirla si no necesita una instrucción predeterminada.
if ]then <execute command>elif ]then <execute another command>fi
If elif Examples
en nuestra sección anterior, usamos la instrucción «if else» para verificar si un usuario es root o no.
en esta sección, vamos a comprobar si el Usuario es root o si el usuario tiene un UID de 1002.
si este no es el caso, vamos a salir del script y devolver el prompt al usuario.,
if ]then echo "You are root!"elif ]then echo "You are user, welcome!"else echo "You are not welcome here." exit 1;fi
Felicitaciones, ahora que usted sabe cómo usar el «si elif» declaración!
Ahora, ¿qué pasa si desea tener varias condiciones bajo la misma instrucción «if»?
múltiples condiciones en If Else
para tener múltiples condiciones escritas en la misma instrucción «if else», debe separar sus condiciones con un operador» y «o un operador» u».,
Por ejemplo, si desea escribir un script que comprueba que usted es el usuario root y que proporcione el parámetro correcto, habría que escribir :
Anidada Si Else
En algunos casos, se desea implementar anidada condiciones con el fin de tener condiciones que se verifican bajo condiciones preliminares.
para tener instrucciones «if else» anidadas, simplemente tiene que incluir la instrucción «if» en otra instrucción «if» y cerrar su instrucción anidada antes de la que la encierra.,
if ]then if ] then <execute command> else <execute another command> fifi
Nota : Asegúrese de tener una declaración «fi» de cierre para cada declaración «if» que abra. Una sola » fi «simplemente no es suficiente para múltiples declaraciones «if».
instrucciones anidadas ejemplos
como ejemplo, digamos que desea verificar que el Usuario es root antes de verificar que el primer argumento proporcionado es cero.,
para resolver eso, escribiría una instrucción anidada «if, then, else» de la siguiente manera :
pruebas Bash
probablemente notado, en las secciones anteriores, utilizamos el operador «-EQ» con el fin de comparar un valor de variable a un número.
hicimos una simple comprobación de igualdad, pero ¿qué pasa si quieres tener una comprobación de desigualdad?
¿Qué pasa si desea comprobar si un valor es mayor que un número dado, por ejemplo?
para realizar esto, necesitará pruebas de Bash.,
Las pruebas Bash son un conjunto de operadores que puede usar en sus declaraciones condicionales para comparar valores juntos.
Las pruebas de Bash se pueden enumerar ejecutando el comando «prueba de ayuda».,
$ help test
al escribir pruebas Bash, esencialmente tiene tres opciones :
- escribir condiciones en archivos y directorios : si existen, si son un archivo de caracteres, un archivo de dispositivo, etc.;
- escribir condiciones en números : si son iguales entre sí, si uno es mayor que el otro;
- Escribir condiciones en cadenas : si se establece una variable de cadena o si dos cadenas son iguales entre sí.,
condiciones del archivo Bash
Las condiciones del archivo Bash se utilizan para comprobar si un archivo existe o no, si se puede leer, modificar o ejecutar.,n)
por ejemplo, Para comprobar si un archivo es un directorio, habría que escribir la siguiente secuencia de comandos
#!/bin/bash# Checking the first argument providedif ]then echo "This is a directory"else echo "Not a directory"fi
Bash Número de Condiciones
Bash número de condiciones que se utilizan para comparar dos números : si son iguales, si uno es mayor que otro o inferior a otra.,num2
por ejemplo, Para comprobar si un número no es igual a cero, habría que escribir :
Bash Cadena de Condiciones
Bash cadena de condiciones se utilizan para comprobar si dos cadenas son iguales o si una cadena si está vacío.,
Here is a table of the main Bash string conditions :
Operator | Description |
str1 = str2 | Checks if strings are equal or not |
str1 !,= str2 | comprueba si las cadenas son diferentes |
-z str1 | comprueba si str1 está vacío |
-n str1 | comprueba si str1 no está vacío |
por ejemplo, para verificar si un usuario proporcionó un valor a su script, escribiría :
conclusión
en el tutorial de hoy, aprendió sobre la declaración bash «if else».
vio, con ejemplos, que puede construir sentencias más complejas: usando sentencias Elif y anidadas.,
finalmente, ha descubierto sobre las pruebas Bash, qué son y cómo se usan para verificar las condiciones en los scripts.
si está interesado en la administración de sistemas Linux, tenemos una sección completa dedicada a ella en el sitio web, ¡así que asegúrese de echarle un vistazo!