Einfache Bash-If-Anweisung

Einfache Bash-If-Anweisung

Ich versuche, einen einfachen Test für ein Verzeichnis zu codieren, stoße jedoch ständig auf ein Problem, das ich nicht lösen kann.

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

Ich habe verschiedene Anführungszeichen, Semikolons, Zeilenumbrüche usw. ausprobiert,
bin aber immer auf diesen Syntaxfehler gestoßen.

Können Sie mir erklären, was ich hier falsch gemacht habe?

Antwort1

Sie müssen den Bedingungsbefehl und das thenSchlüsselwort durch ein Semikolon trennen:

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

Sie können natürlich auch einen Zeilenumbruch anstelle des Semikolons verwenden.

Oder verwenden Sie einen Bedingungsoperator

[ -d dir ] && echo yes

verwandte Informationen