Comparar cadena en Bash

Comparar cadena en Bash

La necesidad de comparar cadenas en un script bash es relativamente común y puede usarse para verificar ciertas condiciones antes de continuar con la siguiente parte de un script. Una cadena puede ser cualquier secuencia de caracteres. Para probar si dos cadenas son las mismas, ambas cadenas deben contener exactamente los mismos caracteres y en el mismo orden. Podría ser una palabra o una oración completa. Por ejemplo, Cadena uno es igual a Cadena uno pero no es igual a Cadena dos. Captar la idea?

En esta guía, le mostraremos cómo comparar las cadenas en el shell bash en un sistema Linux. Mostraremos esto en el contexto de un script Simple IF/Else Bash para que pueda ver cómo funcionarían las pruebas para esta condición al desarrollar scripts, pero también mostraremos cómo se puede hacer esta misma comparación en el terminal de la línea de comando.

En este tutorial aprenderás:

  • Cómo comparar cadenas en Bash
  • Ejemplo if/else Bash scripts que comparan cadenas
Comparación de cuerdas en Bash Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software N / A
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Compare si dos cadenas son iguales

Puede abrir un terminal en su sistema y usar algunos de estos ejemplos para tener una idea de cómo funcionan los operadores de bash cuando se trata de comparar cadenas.

Puede usar la siguiente sintaxis para comparar dos cuerdas.

$ ["manzanas" = "manzanas"] $ echo $? 0 

El valor devuelto de 0 significa verdad. En otras palabras, las cuerdas coinciden (como podemos ver claramente para nosotros mismos).



Probemos otro.

$ ["manzanas" = "naranjas"] $ echo $? 1 

En este ejemplo, manzana no es igual naranjas, Entonces un valor de 1 (falso) se devuelve. Los ejemplos más complejos se muestran mejor en el contexto de los scripts bash, que cubrimos en la siguiente sección.

Ejemplo de scripts bash para comparar cadenas

En un guión de Bash, normalmente almacenarías una o ambas cuerdas como variables antes de compararlas. Aquí hay un ejemplo simple.

#!/bin/bash string1 = "manzanas" string2 = "oranges" if ["$ string1" = "$ string2"]; luego hacer eco "las dos cuerdas son iguales."el más eco" las dos cuerdas no son iguales."Fi
Copiar

Ejecutar este script producirá la siguiente salida.

Las dos cadenas no son iguales. 

Pero = ¿No es el único operador disponible para nosotros?. También podríamos probar para ver si dos cadenas no son iguales con el != operador.

#!/bin/bash string1 = "manzanas" string2 = "oranges" if ["$ string1" != "$ String2"]; Entonces las cuerdas de eco "son diferentes.Las cadenas de "más eco" no son diferentes."Fi
Copiar

Ejecutar este script producirá la siguiente salida.

Las cuerdas son diferentes. 

También hay -z para probar si la longitud de la cadena es 0 y -norte Para probar si la longitud de la cadena no es cero.

#!/bin/bash string = "" if [[-z $ string]]; Entonces hacer eco "la cadena está vacía."else echo" la cadena no está vacía."Fi
Copiar

Ejecutar este script producirá la siguiente salida.

La cadena está vacía. 

Y el mismo guión con -norte y una cadena distinta de cero en su lugar:



#!/bin/bash string = "hello" if [[-n $ string]]; entonces hacer eco "la cadena no está vacía."else eco" la cadena está vacía."Fi
Copiar

Ejecutar este script producirá la siguiente salida.

La cadena no esta vacía. 

Conclusión

En esta guía, vimos cómo comparar cadenas en Bash, tanto desde la línea de comandos como en los scripts de if/else bash. Esta funcionalidad puede, por supuesto, extenderse a scripts más sólidos que leen la entrada de los usuarios o usan el operador de casos, etc.

Estos son todos los métodos de comparación que debe necesitar para comparar cadenas en Bash. Aún más existen al comparar números, como el -teniente (menos que) y -GT (mayor que) operadores. Pero cubrimos eso con mayor detalle en nuestra guía de secuencias de comandos de Bash.

Tutoriales de Linux relacionados:

  • Script bash: ejemplos de comparación de cadenas
  • Vim Editor Basics en Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Mastering Bash Script Loops
  • Variables de Bash especiales con ejemplos
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Bucles anidados en guiones Bash
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux