Es bueno tener en cuenta que, dado que ZSH está construido sobre BASH, la sintaxis y la funcionalidad son similares para scripts creados para bash o shell Zsh.
Declaración if
La forma más básica de implementar la lógica condicional en un script de shell es mediante el uso de una instrucción IF. La sintaxis general para una declaración IF en ZSH está a continuación:
#!/usr/bin/zsh
Si la condición
entonces
// Ejecutar comandos
FI
Para implementar una instrucción IF, comenzamos llamando a la palabra clave IF. Luego pasamos la expresión condicional para evaluar. La expresión condicional debe devolver un valor booleano.
Después de que la expresión condicional llega a la palabra clave y el bloque FI, dentro de estos bloques, pasamos los comandos para ejecutar si la expresión condicional se evalúa a verdaderas.
Si la expresión condicional pasada se evalúa a un falso booleano, el bloque de comandos dentro del bloque FI se ignora y el condicional sale.
Aunque no es necesario, se recomienda sangrar sus bloques de código para su legibilidad y mantenimiento.
Considere el ejemplo de la declaración IF a continuación:
condicional táctil.condicionales sh && vim.mierda
#!/usr/bin/zsh
Si [[100 -gt 50]]
entonces
Echo "100 es mayor que 50"
FI
Guarde el archivo y cierre.
A continuación, haga que el archivo sea ejecutable utilizando el comando chmod como:
condicionales chmod +x.mierda
Finalmente, ejecute el guión como:
./condicionales.mierda
El script ejecutará el bloque if y verificará si 100 es mayor que 50. Si es cierto, ejecutará el comando echo y la salida.
A continuación se muestra una salida de ejemplo:
ps ./condicional.mierda
100 es mayor que 50
Si ... más declaración
Una versión más evolucionada de la declaración if es la instrucción if ... else. Funciona como la instrucción if pero agrega un mango si la expresión condicional se evalúa en falso.
A continuación se muestra la sintaxis general para la declaración if ... else:
#!/usr/bin/zsh
Si es condicional
entonces
// comandos para ejecutar si es verdadero
demás
// comandos para ejecutar si falso
FI
Como se ve en el ejemplo anterior, si la expresión condicional se evalúa de verdad, el bloque entre las declaraciones en ese momento y de lo contrario se ejecuta. Sin embargo, si es falso, el bloque de lo contrario se ejecuta.
Considere el ejemplo que se muestra a continuación:
#!/usr/bin/zsh
echo -n "Ingrese un número:"
LEER NUM
if [[$ num -gt 50]]
entonces
Echo "$ num es mayor que 50"
demás
Echo "$ num no es mayor de 50"
FI
En el script de ejemplo, le pedimos al usuario que ingrese un número. Si el número es mayor que 50, hacemos eco de que el número es mayor que 50. Si es falso, hacemos eco del número no es mayor que 50.
A continuación se muestra una salida de ejemplo:
ps ./condicional.mierda
Ingrese un número: 10
10 no es mayor de 50
ps ./condicional.mierda
Ingrese un número: 80
80 es mayor que 50
Si ... elif ... más declaraciones
En algunos casos, es posible que desee probar múltiples condiciones en un bloque. Para implementar dicha lógica, podemos usar el if ... elif ... de lo contrario.
En una declaración if ... elif ... el más, agregamos múltiples expresiones condicionales donde solo una condición se evalúa a verdad. Si la primera condición es verdadera, ejecute su bloque; Si no, verifique el segundo y continúe hasta que se verifiquen todas las condiciones.
La sintaxis para el bloque if ... elif es:
#!/usr/bin/zsh
Si la condición1
entonces
// bloque1
condición elif2
entonces
// bloque2
Elif condición
entonces
// bloquea
demás
// Si todas las condiciones se evalúan en falsas
FI
Las condiciones se evalúan secuencialmente. Si uno se evalúa como verdadero, se ejecuta su bloque de código. Sin embargo, si ninguna de las condiciones es verdadera, el bloque de else se ejecuta.
El bloque de lo contrario es opcional pero se recomienda manejar una situación en la que no hay condición verdadera.
Aquí hay un script de ejemplo:
if [[$ num -eq 10]]
entonces
echo "número = $ num"
Elif [[$ num -eq 20]]
entonces
echo "número = $ num"
Elif [[$ num -eq 30]]
entonces
echo "número = $ num"
demás
El número de eco "no es ni 10, 20 ni 30"
echo "número = $ num"
FI
El script anterior implementa un bloque ELIF si el número ingresado es 10, 20 o 30. Si no, el lo contrario bloquea la condición como se muestra en la ejecución a continuación:
./condicional.mierda
Ingrese un número: 10
Número = 10
Ingrese un número: 20
Número = 20
Ingrese un número: 30
Número = 30
Ingrese un número: 51
El número no es ni 10, 20 ni 30
Número = 51
Puedes tener tantas declaraciones de Elif como mejor te parezca. Sin embargo, si se producen tales escenarios, considere implementar un bloque de casos.
Operadores condicionales
En los ejemplos anteriores, implementamos operadores condicionales como -EQ (igual a) y -gt (mayor que). ZSH admite otros operadores condicionales como:
Los anteriores son ejemplos de expresiones condicionales que puede usar en sus scripts ZSH. Consulte la documentación para obtener más información.
Conclusión
Este tutorial le ha mostrado cómo implementar la lógica condicional en nuestros scripts ZSH utilizando si las declaraciones. No dude en ver la documentación de Scripting ZSH para obtener más información.
Gracias por leer!