bash string comparison
Al escribir scripts Bash, a menudo tendrá que comparar dos cadenas para verificar si son iguales o no.
Operadores de comparación
-
Los operadores de comparación son operadores que comparan valores y devuelven
true
ofalse
. -
string1 = string2
ystring1 == string2
– El operador de igualdad devuelve true si los operandos son iguales.
- Utilice el operador
=
con el comandotest
[
.- Utilice el operador
==
con el comando[[
para la coincidencia de patrones.
string1 != string2
– El operador de desigualdad devuelve true si los operandos no son iguales.string1 =~ regex
– El operador regex devuelve true si el operando izquierdo coincide con la expresión regular extendida de la derecha.string1 > string2
– El operador mayor que devuelve true si el operando izquierdo es mayor que el derecho ordenado por orden lexicográfico (alfabético).string1 < string2
– El operador less than devuelve true si el operando derecho es mayor que el derecho ordenado por orden lexicográfico (alfabético).z
string – True si la longitud de la cadena es cero.n
string – True si la longitud de la cadena es distinta de cero.
compare strings bash
Compruebe si dos cadenas son iguales
str1="CodeJagd" str2="CodeJagd" if [ $str1 = $str2 ]; then echo "Equal" else echo "Not equal" fi
Salida
Equal
Si desea tomar la entrada del usuario y comparar las cadenas dadas. En este ejemplo, usaremos el comando [[
y el operador ==
read -p "Enter first string: " str1 read -p "Enter second string: " str2 if [ $str1 = $str2 ]; then echo "Equal" else echo "Not equal" fi
Salida
Enter first string: code Enter second string: code Equal
También puede usar el lógico y &&
y/o ||
para comparar cadenas
read -p "Enter first string: " str1 read -p "Enter second string: " str2 [[ "$str1" == "$str2" ]] && echo "Equal" || echo "Not equal"
Salida
Enter first string: code Enter second string: code Equal
bash compare strings
Comprobar si una cadena contiene una subcadena
Opción 1: Usar el símbolo ‘*’
Con símbolos de asterisco *
que significa que coinciden con todos los caracteres.
str1='Hello World' if [[ $str1 == *"World"* ]]; then echo "Present" else echo "Not Present" fi
Salida
Present
Opción 2 : Utilice el operador =~
- Con el operador regex
=~
que significa coincidir con todos los caracteres. .*
coincide con cero o más ocurrencias de cualquier carácter
str1='Hello World' if [[ $str1 =~ .*World.* ]]; then echo "Present" else echo "Not Present" fi
Salida
Present
bash string eq
Comprobar si una cadena está vacía
Puede comprobar si una variable es una cadena vacía o no utilizando los operadores -n
y -z
.
Using -z
Operator
str1='Hello World' if [[ -z $str1 ]]; then echo "Empty" else echo "Not Empty" fi
Salida
Not Empty
Uso del operador -n
str1=' ' if [[ -n $str1 ]]; then echo "Empty" else echo "Not Empty" fi
Salida
Empty
Comparing string es una de las operaciones más básicas y utilizadas con frecuencia en el scripting Bash.