Cómo utilizar if -z e if -n de bash para comprobar cadenas en Linux
Hay diferentes operadores de cadena disponibles en el lenguaje de script bash que se pueden utilizar para comprobar cadenas. Los operadores -z y -n se utilizan para verificar si la cadena es Nula o no. En esta guía, probaremos estos operadores de cadena utilizando la sentencia if en Centos 8.
En esta guía aprenderás sobre las siguientes cadenas de prueba:
- If-n cuando la Cadena es Nula.
- If-n cuando Cadena no es Nula
- If-z cuando String es Nulo
- If-z cuando String no es Nulo
- If-z al tomar String Entrada de usuario
Uso del operador if -n cuando String es Nulo
Nuestro principal objetivo al utilizar aquí el operador if -n es demostrar que la cadena específica es Nula. Sigue los pasos citados para ejecutar esta tarea:
Crea un nuevo archivo con el nombre CheckString.sh. Puedes crearlo directamente en tu directorio personal o utilizando el siguiente comando en el terminal:
$ touch CheckString.sh
Puedes ver que se ha creado el archivo CheckString.sh en tu directorio personal, como se muestra en la imagen.
Abre el archivo CheckString.sh y escribe un script bash tal y como se muestra en la siguiente imagen. Aquí puedes ver que hemos inicializado una cadena con el nombre StdName seguido del valor Null. En nuestra sentencia if hemos utilizado el operador de prueba de cadena -n seguido de la cadena NombreEst. Como la cadena StdName es nula, el operador -n ejecutará la sección else del script.
Ahora ejecutaremos el comando mencionado a continuación para comprobar si la cadena es Nula o no.
$ bash CheckStrings.sh
Como nuestra cadena StdName es Nula, el operador -n cadena ejecutará la parte else. Así que la salida será ¡Lo siento! No tienes nombre en el terminal, como se muestra en la imagen inferior.
Uso de if -n cuando la cadena no es nula
Estamos utilizando el operador if -n aquí para mostrar que la cadena especificada en el archivo no es Nula. Tienes que seguir los pasos que se indican a continuación para realizar esta actividad:
No necesitas crear un nuevo archivo o cadena. Utilizarás el mismo archivo CheckString.sh para esta tarea con un pequeño cambio. Esta vez, la cadena StdName de tu archivo debe tener algún valor distinto de null. Así que tienes que asignar a tu cadena un valor (no nulo) mientras que el resto del script sigue igual. Así que, como puedes ver, hemos asignado a la cadena StdName un valor Aqsa Yasin. Así que esta vez Si parte del script se ejecutará mediante el operador -n.
Ahora ejecutaremos el comando mencionado a continuación para comprobar si la cadena tiene algún valor o no.
$ bash CheckStrings.sh
Como nuestra cadena StdName tiene ahora un valor Aqsa Yasin, el operador de cadena -n ejecutó la parte if. Así que la salida será ¡Hy! Aqsa Yasin en el terminal, como se muestra en la imagen adjunta.
Uso de if -z cuando la cadena es nula
Aquí estamos utilizando el operador if -z para mostrar que la cadena especificada en el archivo es Nula. Tienes que seguir los pasos que se indican a continuación para realizar esta actividad:
No hay nada nuevo que hacer para esta tarea. Sólo tienes que utilizar el mismo archivo de siempre CheckString.sh con el operador de cadena -z. Como sabemos, el operador -z ejecuta la parte True cuando la cadena es Nula. Como la cadena StdName tiene un valor nulo, la parte if del script será ejecutada por el operador -z.
Ahora ejecutaremos el comando mencionado a continuación para comprobar que la cadena es nula.
$ bash CheckStrings.sh
Como nuestra cadena StdName ahora no tiene valor, y el operador de cadena -z sabe que la cadena es nula, por lo que ejecuta la parte if. Así que la salida será Lo siento No tienes nombre en el terminal, como se presenta en la imagen adjunta.
Uso de if -z cuando la Cadena no es Nula
Aquí estamos utilizando el operador if -z para mostrar que la cadena especificada en el archivo no es Nula. Siguiendo estos pasos serás capaz de realizar esta actividad:
No es necesario hacer nada nuevo. Utilizaremos el mismo archivo CheckString.sh para esta tarea con un pequeño cambio. Esta vez, sustituiremos el operador de cadena -n por el operador de cadena -z. Además, tienes que intercambiar las partes if y else del script entre sí. Como sabemos el operador -z ejecuta la parte True cuando la cadena es Nula. Como la cadena StdName tiene el valor Aqsa Yasin, que no es nulo, el operador -z ejecutará la sentencia else.
Ahora ejecutaremos el comando mencionado a continuación para comprobar si la cadena es nula o no.
$ bash CheckStrings.sh
Como nuestra cadena StdName tiene ahora el valor Aqsa Yasin, y el operador de cadena -z sabe que la cadena no es nula, ejecuta la parte else. Así que la salida será Hy Aqsa Yasin en el terminal, como se muestra en la siguiente imagen.
Uso de if -z al tomar la entrada de cadena del usuario
Por último, estamos utilizando el operador if-z para comprobar la entrada de cadena añadida por el usuario en tiempo de ejecución. Tienes que realizar los siguientes pasos para probar la entrada de cadena del usuario:
Esta vez tienes que modificar en cierta medida tu script en el archivo. En primer lugar, utilizaremos el operador -z en la sentencia if seguido de la variable cadena. El sistema pedirá al usuario que añada algunos valores de cadena. El usuario añadirá alguna cadena. Al utilizar la sentencia read, el sistema guardará la cadena escrita por el usuario en la variable string. Como sabemos, el operador -z ejecuta la parte if de la sentencia cuando la cadena es válida. Si la cadena introducida por el usuario es nula, el sistema te pedirá que introduzcas de nuevo la cadena. Si la cadena introducida por el usuario no es nula, el sistema mostrará la cadena.
Ahora ejecutaremos el comando que se indica a continuación para comprobar la cadena introducida por el usuario:
$ bash CheckStrings.sh
Cuando el sistema pide al usuario que añada alguna cadena, el usuario no añade ningún valor. Así que el operador -z reconoce la cadena como nula y ejecuta la sentencia if. El sistema volvió a pedir al usuario que añadiera algún valor de cadena. Esta vez el usuario añadió un valor de cadena válido Nuevo Orden Mundial. De ahí que el sistema mostrara el mensaje La cadena que has introducido es: Nuevo Mundo
Conclusión
En esta guía, has descubierto cómo utilizar los operadores de cadena para comprobar si un valor de cadena es nulo o no nulo. Espero que este artículo te haya ayudado mucho a dominar los operadores de cadena -z y -n y a manipular sentencias.