Cómo usar las declaraciones bash if -z e if -n para probar la cadena

Cómo usar las declaraciones bash if -z e if -n para probar la cadena

La declaración "IF" se usa en BASH para ramificación condicional como en otros lenguajes de programación. La declaración "si" se puede usar para verificar las diferentes condiciones en Bash. Los diferentes tipos de operadores de comparación, operadores lógicos y opciones se utilizan con la declaración "IF" para probar. Los usos de la opción "-Z" y "-n" para probar los valores de cadena utilizando la instrucción "IF" en BASH se muestran en este tutorial.

Usando la declaración "if -z"

A veces, se requiere verificar si una variable de cadena está vacía o si contiene una cadena de longitud cero. Hay muchas opciones en Bash para hacer esta tarea. Usar la opción "-Z" con la instrucción "si" es una de las formas de verificar si una variable está vacía o no. Los usos de la opción "if -z" se muestran en la siguiente parte del tutorial.

Ejemplo 1: Verificar la declaración "if -z" usando "[]"

Cree un archivo bash con el siguiente script donde se muestra el uso de la declaración "if -z" con el "[]". Se toman dos entradas del usuario. Si alguno de los valores de entrada está vacío, se imprime un mensaje de error. De lo contrario, se calculan e imprimen la suma de los dos valores de entrada.

#!/bin/bash
#Realice el primer número
Leer -P "Ingrese el primer número:" N1
#Realice el segundo número
Leer -P "Ingrese el segundo número:" N2
#Chek cualquier entrada está vacía o no
if [[-z "$ n1" || -z "$ n2"]]]
entonces
#Imprima el mensaje de error
hacer eco "el primer o segundo número está vacío."
demás
#Calcula la suma
suma = $ (($ N1+$ N2))
#Imprima el valor de suma
echo "La suma de $ N1 y $ N2 es $ suma."
FI


Producción:

La siguiente salida aparece si el script se ejecuta sin ningún argumento:


La siguiente salida aparece si el script se ejecuta con un argumento:


La siguiente salida aparece si el script se ejecuta con dos argumentos:


Ejemplo 2: Verificar la instrucción "if -z" con el comando "prueba"

Cree un archivo bash con el siguiente script donde el uso de la instrucción "if -z" con el "pruebaSe muestra el comando. Se toma una entrada del usuario que debe ser numérica. Si el valor de entrada está vacío, se imprime un mensaje de error. Si el valor de entrada no está vacío pero no contiene un valor numérico, se imprime otro mensaje de error. Si se toma un número entero como entrada, el valor de entrada se imprime.

#!/bin/bash
#Leer el valor de edad
Leer -P "Ingrese su edad:" Edad
#Chek si el valor de entrada está vacío o no
Si prueba -z "$ edad"
entonces
#Prase el mensaje de error para vacío
Echo "El valor de entrada está vacío."
salida
FI
#Chek si el valor de entrada es un número o no
si ! [[$ edad = ~ ^[0-9]+$]]; entonces
#Imprima el mensaje de error para datos no numéricos
hacer eco "El valor de edad debe ser un número."
demás
#Imprima el valor de entrada
Echo "Tienes $ de años."
FI


Producción:

La siguiente salida apepars si el script se ejecuta con el valor de entrada numérica:


La siguiente salida aparece si el script se ejecuta con el valor de entrada de cadena:

Usando la declaración "if -n"

A veces, se requiere verificar si una variable de cadena no está vacía o si contiene un valor de cadena más de longitud cero. Hay muchas opciones en Bash para hacer esta tarea. Usar la opción "-n" con la instrucción "si" es una de las formas de verificar si una variable no es vacía o no. Los usos de la opción "if -n" se muestran en la siguiente parte del tutorial.

Ejemplo 1: Verificar la declaración "if -n" usando "[]"

Cree un archivo bash con el siguiente script donde se muestra el uso de la declaración "if -n" con el "[]". Se toma un valor de entrada del usuario. Si el valor de entrada está vacío, se imprime un mensaje de error. De lo contrario, se imprime el valor de la entrada.

#!/bin/bash
#Lee el nombre del libro
Leer -P "Ingrese el nombre del libro:" Libro
#Chek si la entrada no es cero o no
si ! [-n "$ libro"]
entonces
#Imprima el mensaje de error
echo "el nombre del libro no puede estar vacío."
demás
#Imprima el valor de entrada
echo "El nombre del libro es $ libro."
FI


Producción:

La siguiente salida aparece si el script se ejecuta con cualquier valor de entrada:


La siguiente salida aparece si el script se ejecuta con un valor de entrada de cadena:


Ejemplo 2: Verificar la declaración "if -n" con el comando "prueba"

Cree un archivo bash con el siguiente script donde se muestra el uso de la instrucción "if -n" con el comando "prueba". La primera entrada es una cadena y la segunda entrada es numérica. Si ambos valores de entrada no están vacíos, se imprime un mensaje de error. Si el segundo valor de entrada no es numérico, de lo contrario, los valores de entrada se imprimen.

#!/bin/bash
#Lee el nombre del libro
Leer -P "Ingrese el nombre del libro:" Libro
#Lee el nombre del libro
Leer -P "Ingrese el precio del libro:" Precio
#Chek si la entrada no es cero o no
Si test -n "$ book" && test -n "$ precio"
entonces
#Chek si el valor de entrada es un número o no
si ! [[$ precio = ~ ^[0-9]+$]]; entonces
#Imprima el mensaje de error para datos no numéricos
echo "El valor del precio debe ser un número."
demás
#Imprima los valores de entrada
echo "el nombre del libro es $ libro."
echo "El precio del libro es $ precio."
FI
demás
#Imprima el mensaje de error
echo "El nombre o el precio del libro no se pueden vaciar."
FI


Producción:

La siguiente salida aparece si el script se ejecuta con dos valores de entrada vacíos:


La siguiente salida aparece si el script se ejecuta con un valor de entrada vacío:


La siguiente salida aparece si el script se ejecuta con dos valores de entrada válidos no vacíos:


La siguiente salida aparece si el script se ejecuta con dos valores no vacíos y un valor de precio no válido:

Conclusión

Los usos de las declaraciones "if -z" e "if -n" se explican en este tutorial utilizando múltiples ejemplos para ayudar a los usuarios de BASH a aplicar correctamente estas declaraciones en su script.