У меня есть сценарий оболочки, сгенерированный java jar, что я не могу запустить что-либо postgres, связанные с его созданием. Однако при копировании всего его содержимого в новый файл сценария оболочки я могу без проблем выполнить сценарий. Содержимое скрипта в основном просто подключается к моей базе данных postgres, создает новую базу данных и заполняет ее. Вот фрагмент:
#!/bin/bash
export DATABASE_NAME="dbname"
export DB_USERNAME="postgres"
psql -c "drop database $DATABASE_NAME;" postgres postgres
psql -c "create database $DATABASE_NAME;" postgres postgres
echo "Starting scripts"
psql -f db/pgsql/schema/schema.sql $DATABASE_NAME $DB_USERNAME
Любые идеи о том, почему это так?
РЕДАКТИРОВАТЬ: Для пояснения сценарий ошибки, когда он достигает этой строки:
psql -c "удалить базу данных $ DATABASE_NAME;" postgres postgres
Это дает следующую ошибку для каждой строки, которая должна быть выполнена в этом файле:
PSQL: fe_sendauth: пароль не указан
Вещи, которые я подтвердил:
Сценарий оболочки является исполняемым
~/.pgpass имеет необходимые учетные данные
Если копировать содержимое этого скрипта в новый файл, и я запускаю этот файл, все работает как положено.