Я пытаюсь написать простой тест для каталога, но постоянно сталкиваюсь с проблемой, которую не могу решить.
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