Помогите найти ошибку в shell скрипте

Компьютеры программирование программы Linux shell

Вот скрипт:

# create object of DB for ttk highway
PSQLPATH=$1
USER=$2
if [ -z ${PSQLPATH} ] then
echo "incorrect path param"
echo Usage: $0 psqlpath username
exit 1
fi
if [ -z ${USER} ] then
echo "incorrect username param"
echo Usage: $0 psqlpath username
exit 1
fi
${PSQLPATH}/createdb -h localhost -U ${USER} highway2
${PSQLPATH}/psql -f createDatatable.sql -h localhost -d highway2 -U ${USER}
${PSQLPATH}/psql -f insertStatements.sql -h localhost -d highway2 -U ${USER}
echo "execute passed"
exit 0

пишет - неожиданный конец файла. Где ошибка? Никак не могу найти.

Примечание:
дописал в начале #!/bin/sh - тоже самое. в конце нет пустой строки

Примечание:
я сделал так как Вы сказали, но к сожалению ошибка осталась прежней =(
Ответы:
Может пустая строка в конце? ;)))))
В самом начале. Кто это должен обрабатывать? bash, zsh, csh или ещё кто-то?
В конструкции if [....]; then надо либо точку с запятой ставить после условия, либо then на другую строку вынести.
Скобки должны быть двойные и перед then пропущена точка с запятой:


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.