Tratar con cadenas es parte de cualquier lenguaje de programación. Las secuencias de comandos de Bash Shell no son diferentes. Incluso la sintaxis es más o menos la misma.
En este tutorial rápido, le mostraré cómo comparar cadenas en scripts de shell Bash.
Comparación de cadenas Bash
Así es como se comparan cadenas en Bash.
if [ "$string1" == "$string2" ]
También puede usar una cadena directamente en lugar de usar una variable.
if [ "$string1" == "This is my string" ]
Déjame mostrártelo con ejemplos apropiados.
Verificar si dos cadenas son iguales
Si desea verificar si dos cadenas son iguales, aquí hay un ejemplo:
#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
echo "Equal Strings"
else
echo "Strings not equal"
fi
Consejo:Preste atención a los espacios
Debe haber un espacio entre el [
y el nombre de la variable y el operador de igualdad ==. Si olvida alguno de los espacios aquí, verá un error como 'se esperaba un operador unario' o falta ']'.
Comprobar si las cadenas no son iguales en Bash
En lugar de verificar la calidad, hagamos lo contrario y verifiquemos la desigualdad. Bash también proporciona el operador de negación para que pueda usar fácilmente la condición "si no es igual" en los scripts de shell.
if [ "$string1" != "Not MyString" ]
El ejemplo completo se ve así:
#!/bin/bash
string1="MyString"
if [ "$string1" != "Not MyString" ]
then
echo "Not Equal Strings"
else
echo "Strings equal"
fi
Comprobar si la cadena es nula o está vacía en Bash
A diferencia de otros lenguajes como C++, en Bash puede verificar si la cadena es nula o está vacía con un solo comando:
if [ -z "$VAR" ]
El -z en realidad verifica si la longitud de la variable es cero o no. Si la variable no está configurada o si está vacía (igual a ""), la longitud será cero y, por lo tanto, la condición devolverá verdadero.
Un ejemplo completo se puede ver aquí:
#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
echo "Null Strings"
fi
if [ -z "$string2"]
then
echo "Empty String"
fi
Nota sobre el uso de corchetes simples '[]' y corchetes dobles '[[]]' en scripts bash
También puede usar la instrucción if con corchetes dobles como este:
if [[ "$string1" == "My String" ]]
El soporte único es la antigua convención de Posix y tiene algunas deficiencias. Si no usa las comillas dobles alrededor de las variables y la variable no está definida, desaparecerá del código y esto dará como resultado un error de sintaxis.
if [ $string1 == "My String" ]
Si la variable $cadena1 está vacía o no está definida en el código anterior, esa línea será equivalente a
if [ == "$string2" ]
Conclusión
Espero que este pequeño tutorial rápido lo haya ayudado a comparar cadenas en scripts de bash shell. También recomiendo leer otro tutorial rápido sobre el comando bash sleep.
Si tiene preguntas o sugerencias, no dude en dejar un comentario a continuación.