If y else condicionales en el script zsh

If y else condicionales en el script zsh
La toma de decisiones, también llamada condicional, es un bloque de construcción fundamental en la programación. En este tutorial, discutiremos cómo implementar condicionales en nuestros scripts utilizando el shell Zsh.

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:

  • a -eq b - Verdadero si A es numéricamente igual a B
  • a -gt b - Cierto si a es numéricamente mayor que b
  • a -lt b - Cierto si a es numéricamente menor que b
  • a -ne b - Verdadero es A no es numéricamente igual a B
  • a -le b - Verdadero si A es numéricamente menor o igual a B
  • A -GE B - Verdadero si A es numéricamente mayor o igual a B
  • a != B - Verdadero si la cadena A no es igual a la cadena B
  • A = B - Verdadero si la cadena A es igual a la cadena B
  • -Z cadena - Verdadero si la longitud de la cadena es cero
  • -n cadena - Cierto si la longitud de la cadena no es cero
  • -un archivo - Verdadero si el archivo existe
  • -hile h - Verdadero si el archivo existe y es un enlace simbólico
  • -File F - Verdadero si el archivo existe y es un archivo regular (no un directorio o un archivo especial)
  • -archivo d - Verdadero si el archivo existe y es un directorio
  • -E Archivo - Verdadero si el archivo existe independientemente del tipo
  • -Rile R - Verdadero si el archivo existe y es legible por el proceso actual
  • -W FILE - Verdadero si el archivo existe y es escritable por el proceso actual
  • -x archivo - Verdadero si el archivo existe y es ejecutable por el proceso actual
  • -archivo g - Verdadero si el archivo existe y se ha establecido
  • -archivo s - Verdadero si existe el archivo y el tamaño es mayor que cero
  • -u - Verdadero si el archivo existe y se ha establecido
  • -o Archivo - Verdadero si el archivo existe y es propiedad de la identificación actual
  • ! Exp - Verdadero si la expresión es falsa
  • A && B - Cierto si tanto A como B son verdaderos
  • A || b - Cierto si A o B es verdadero

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!