GNU/Linux >> Tutoriales Linux >  >> Linux

Bash:¿Error de sintaxis cerca del token inesperado '}'?

Intenté usar esto:

$ if [$a == 1] then { echo 'yes'; } fi;

pero me sale un error:

-bash: syntax error near unexpected token `}'

¿Cuál es el formato correcto? Probé varios sin suerte.

Respuesta aceptada:

[ es solo otro personaje, según bash; no se autodelimita. Entonces necesitas poner espacios alrededor de [ y ] . Aunque sería mejor usar [[ y ]] .

Y el comando que sigue a if (sí, [ es un comando) debe terminar con un ; o una nueva línea.

Finalmente, == (que no es posix, FWIW; posix prefiere = ) es igualdad de cadenas, no igualdad numérica.

Así que podrías haber querido decir:

if [[ $a -eq 1 ]]; then echo yes; fi

Pero podría usar la evaluación aritmética en su lugar:

if ((a == 1)); then echo yes; fi

(En evaluación aritmética, la igualdad es == , y no necesitas $ antes de los nombres de las variables. Sé que es confuso.)

Para más información sobre [ :help test . Acerca de [[ :ayuda [[ (que se basa en test ). Acerca de (( :help let . Acerca de bash :man bash


Linux
  1. Manejo de errores en scripts Bash

  2. Typeset -a ¿Está dando un error en el script?

  3. ¿Múltiples operadores lógicos, ((a || B) &&C), y "error de sintaxis cerca del token inesperado"?

  4. error de sintaxis cerca del token inesperado ' - bash

  5. Generar error en un script Bash

Declaración Bash declare:sintaxis y ejemplos

Sintaxis y ejemplos de declaraciones de caso Bash

Solución de problemas del error "Bash:Comando no encontrado" en Linux

Sintaxis de Bash If Else con ejemplos

"Error de sintaxis cerca de un token inesperado" después de editar .bashrc?

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?