bash – ¿Cómo puedo comparar una variable con una cadena de texto, en lugar de un número entero, en una declaración if / else?

Pregunta:

En el proceso de escribir un script de shell, encontré un problema con la siguiente declaración if / else que se encuentra en algún lugar en el medio del script:

if [ $act -eq "add" ]
then
    read - "add or update: " $comm
    git commit -m "$comm $file"
else
    git commit -m "$act $file"
fi

El error de retorno es:

./gitup: line 13: [: add: integer expression expected

y luego continúa con el resto del guión. ¿Cómo puedo hacer que el segmento if evalúe / compare la variable con una entrada de cadena en lugar de un número entero? se requirió un error diferente al usar "! =" entre un par de otras cosas que probé.

Respuesta:

Algo como esto:

act="add"
if [[ $act = "add" ]]
then
    echo good
else
    echo not good
fi

-eq es para comparación de números, use = para comparación de cadenas

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım