GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo comparar cadenas en Bash Shell Scripting

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.


Linux
  1. ¿Cómo sabe Bash cómo se está invocando?

  2. ¿Cómo analizar Json con secuencias de comandos de Shell en Linux?

  3. Cómo hacer eco de una nueva línea en Bash Shell Scripts

  4. Cómo:¿Historial ilimitado de Bash/shell?

  5. Cómo grep una sección de un archivo en bash Shell

Cómo usar el comando de fecha en Bash Scripting en Linux

Shell Scripting para principiantes:cómo escribir Bash Scripts en Linux

Cómo usar el comando Declare en Linux Bash Shell

Cómo instalar Linux Bash Shell en Windows 10

Cómo verificar si existe un archivo o directorio en Bash Shell

Bash Scripting:cómo generar y formatear texto en Linux Shell