Простой оператор Bash If

Простой оператор Bash If

Я пытаюсь написать простой тест для каталога, но постоянно сталкиваюсь с проблемой, которую не могу решить.

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

Я пробовал использовать различные кавычки, точки с запятой, переносы строк и т. д.
Но всегда сталкивался с этой синтаксической ошибкой.

Можете ли вы объяснить, что я здесь сделал не так?

решение1

Для разделения команды условия и ключевого слова необходима точка с запятой then:

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

Конечно, вы можете использовать новую строку вместо точки с запятой.

Или используйте условный оператор

[ -d dir ] && echo yes

Связанный контент