Declaración simple de Bash If

Declaración simple de Bash If

Estoy intentando codificar una prueba simple para un directorio, pero sigo encontrando un problema que no puedo resolver.

 prompt> if [ -d "./mydir" ] then echo "yes"; fi
 -bash: syntax error near unexpected token 'fi'

Probé una variedad de comillas, punto y coma, saltos de línea, etc.
Pero siempre me encuentro con este error de sintaxis.

¿Puedes explicar qué he hecho mal aquí?

Respuesta1

Necesita un punto y coma para separar el comando de condición y la thenpalabra clave:

if [ -d dir ]; then echo yes; else echo no; fi
# ...........^

Por supuesto, puedes usar una nueva línea en lugar del punto y coma.

O utilice un operador condicional

[ -d dir ] && echo yes

información relacionada