Cómo comparar cadenas en Bash en Linux

27 feb 2021 2 min di lettura
Cómo comparar cadenas en Bash en Linux
Indice dei contenuti

Introducción

Al escribir scripts Bash, a menudo es necesario comparar dos cadenas para ver si son iguales o no. Dos cadenas son iguales cuando tienen la misma longitud y contienen la misma secuencia de caracteres.

Este tutorial describe cómo comparar cadenas en Bash.

Operadores de comparación

Los operadores de comparación son operadores que comparan valores y devuelven verdadero o falso. Al comparar cadenas en Bash, puede utilizar los siguientes operadores:

  • string1 = string2 y string1 == string2: el operador de igualdad devuelve verdadero si los operandos son iguales.
  • Utilice el = con la test [
  • Utilice el == con el [[ para la coincidencia de patrones.
  • string1!= string2: el operador de desigualdad devuelve verdadero si los operandos no son iguales.
  • string1 =~ regex: el operador de expresiones regulares devuelve verdadero si el operando de la izquierda coincide con la expresión regular extendida de la derecha.
  • string1 > string2: el operador mayor que devuelve verdadero si el operando izquierdo es mayor que el derecho ordenado por orden lexicográfico (alfabético).
  • string1 < string2: el operador menor que devuelve verdadero si el operando derecho es mayor que el derecho ordenado por orden lexicográfico (alfabético).
  • -z string: verdadero si la longitud de la cadena es cero.
  • -n string: verdadero si la longitud de la cadena no es cero.

A continuación, se muestran algunos puntos a tener en cuenta al comparar cadenas:

  • Debe utilizar un espacio en blanco entre el operador binario y los operandos.
  • Utilice siempre comillas dobles alrededor de los nombres de las variables para evitar la división de palabras o problemas de agrupamiento.
  • Bash no separa las variables por "tipo", las variables se tratan como enteros o cadenas según el contexto.

Comprueba si dos cadenas son iguales

En la mayoría de los casos, al comparar cadenas, desea verificar si las cadenas son iguales o no.

El siguiente script usa la instrucción if y el [ test para verificar si las cadenas son iguales o no con el operador =

#!/bin/bash

 VAR1="Noviello"
 VAR2="Noviello"

 if [ "$VAR1" = "$VAR2" ]; then
 echo "Strings are equal."
 else
 echo "Strings are not equal."
 fi

Cuando se ejecuta el script, se imprimirá la siguiente salida.

Strings are equal.

Aquí hay otro script que toma la entrada del usuario y compara las cadenas dadas. En este ejemplo, usaremos el [[ y el operador ==

#!/bin/bash

 read -p "Enter first string: " VAR1
 read -p "Enter second string: " VAR2

 if [[ "$VAR1" == "$VAR2" ]]; then
 echo "Strings are equal."
 else
 echo "Strings are not equal."
 fi

Ejecute el script e ingrese las cadenas cuando se le solicite:

Enter first string: Noviello
 Enter second string: Ubuntu
 Strings are not equal.

También puede utilizar las cadenas lógicas && o

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.