Programación BASH

Bash if -z y if -n para probar cadenas

Bash if -z y if -n para probar cadenas

La declaración "si" en Bash se puede usar con diferentes parámetros para cumplir múltiples propósitos. Siempre que estemos trabajando con cadenas en Bash, es muy importante para nosotros comprobar si una cadena es nula o no para que no pueda causar ningún problema en la ejecución de nuestro programa. Los indicadores "-z" y "-n" se pueden usar con la instrucción "if" para probar las cadenas, y le explicaremos cómo se puede hacer esto en el artículo de hoy.

Nota: Linux Mint 20 se utiliza para probar los siguientes ejemplos.

Método de uso de Bash "if -z" y "if -n" para probar cadenas

Para explicar el uso de Bash "if -z" y "if -n" para probar cadenas, nos gustaría compartir con usted los siguientes escenarios de ejemplo.

Ejemplo n. ° 1: uso de "if -n" para mostrar que una cadena es nula

Para mostrar que una cadena en Bash es nula usando la declaración "if -n", realizaremos los siguientes pasos:

Primero, crearemos un archivo Bash en nuestro directorio de inicio llamado Strings.sh, como se muestra en la siguiente imagen:

Después de crear este archivo, escribiremos el script que se muestra en la siguiente imagen en nuestro archivo. Como todos los guiones de Bash, la primera línea, yo.mi. “#!/ bin / bash ", es obligatorio. Entonces hemos declarado una cadena nula llamada "nombre". Una cadena nula en Bash se puede declarar igualando una variable a "". Luego tenemos una declaración "si" seguida de la bandera "-n", que devuelve verdadero si una cadena no es nula. Hemos usado esta bandera para probar nuestra cadena "nombre", que es nula. Significa que la condición "si" no se ejecutará ya que el valor de la bandera "-n" será falso en este caso. Por lo tanto, también tenemos una parte "else" que se ejecutará imprimiendo un mensaje en el terminal.

Ahora es el momento de ejecutar este archivo, que se puede hacer con el comando que se muestra a continuación:

$ bash Strings.sh

Dado que la cadena que declaramos era nula, es por eso que se ha ejecutado la parte "else" de nuestro script, y se ha impreso el mensaje correspondiente en el terminal como se muestra en la siguiente imagen:

Ejemplo n. ° 2: uso de "if -n" para mostrar que una cadena no es nula

Para mostrar que una cadena en Bash no es nula usando la declaración "if -n", realizaremos los siguientes pasos:

Escribiremos el siguiente script en nuestro archivo Bash. El único cambio que hemos realizado en el script que creamos anteriormente para este escenario es que esta vez, le hemos asignado a la cadena "nombre" un nombre válido. Significa que nuestra cadena no es nula esta vez, lo que implica que la parte "si" del script debe ejecutarse.

Ahora ejecute el script una vez más, y notará que nuestro script modificado funciona tal como queríamos al ejecutar la parte "si" del script esta vez como se muestra en la imagen a continuación:

Ejemplo n. ° 3: uso de "if -z" para mostrar que una cadena no es nula

Para mostrar que una cadena en Bash no es nula usando la instrucción "if -z", realizaremos los siguientes pasos:

El guión para este escenario es casi el mismo que para el escenario discutido anteriormente. Solo hemos reemplazado la bandera "-n" con la bandera "-z", pero esta vez, también hemos intercambiado las partes "si" y "si no" del script porque la bandera "-z" devuelve verdadero si la cadena es nulo. Significa que esta vez, la parte "else" del script se ejecutará porque nuestra cadena no era nula.

Puede verificar esto ejecutando el script que acaba de modificar, y podrá ver que su cadena no era nula, como se muestra en la imagen a continuación:

Ejemplo n. ° 4: uso de "if -z" para mostrar que una cadena es nula

Para mostrar que una cadena en Bash es nula usando la declaración "if -z", realizaremos los siguientes pasos:

Hemos utilizado el mismo script para este escenario que para el Ejemplo n. ° 3. El único cambio que le hemos hecho a este script es que hemos hecho que nuestra cadena sea nula asignándole el valor nulo, como puede ver en la imagen que se muestra a continuación:

Ahora, cuando ejecutemos este script, la parte "si" del script se ejecutará porque la cadena es nula y, por lo tanto, el valor de la bandera "-z" será verdadero, como puede ver en la siguiente imagen:

Ejemplo n. ° 5: tomar la entrada del usuario de una cadena y probarla con "if -z"

Para probar la entrada de cadena proporcionada por el usuario con la declaración "if -z", realizaremos los siguientes pasos:

Copiaremos el script que se muestra en la imagen a continuación en nuestro archivo Bash. Aquí, le pedimos al usuario que ingrese una cadena, y luego guardamos esa cadena en la variable "cadena" con el comando "leer". Luego estamos probando esta cadena con la declaración "if -z", que se ejecutará si la cadena es nula. Si ese es el caso, este script le pedirá al usuario que ingrese una cadena válida, y luego imprimirá esa cadena. Sin embargo, si el usuario ingresa una cadena válida por primera vez, se ejecutará la parte "más" del script.

Después de ejecutar este script de Bash, cuando se nos pidió que ingresáramos una cadena, ingresamos intencionalmente una cadena nula, i.mi., simplemente presionamos la tecla Enter. Es por eso que nuestro terminal nos solicitó ingresar una cadena válida, como se muestra en la siguiente imagen:

Esta vez hemos ingresado una cadena válida "hola" y, por lo tanto, el terminal imprimió el mensaje correspondiente como se muestra en la imagen a continuación:

Conclusión

Este artículo le enseñó todos los métodos diferentes con los que puede probar que sus cadenas sean nulas o no mientras usa las banderas "-z" y "-n" con la declaración "if". Al usar estas banderas, podemos probar cualquier cadena y, por lo tanto, usarlas de manera muy eficiente en nuestros scripts.

Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...