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 then
Schlü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