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