Declaração Bash If simples

Declaração Bash If simples

Estou tentando codificar um teste simples para um diretório, mas continuo enfrentando um problema que não consegui resolver.

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

Eu tentei uma variedade de aspas, ponto e vírgula, quebras de linha, etc.
Mas sempre encontro esse erro de sintaxe.

Você pode explicar o que fiz de errado aqui?

Responder1

Você precisa de um ponto e vírgula para separar o comando de condição e a thenpalavra-chave:

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

É claro que você pode usar uma nova linha em vez do ponto e vírgula

Ou use um operador condicional

[ -d dir ] && echo yes

informação relacionada