#postgresql #shell #scripting #quoting
Вопрос:
Я пытаюсь использовать следующее в скрипте оболочки (/bin/sh), но продолжаю получать ошибки:
su postgres -c "/usr/bin/psql -c 'CREATE ROLE user WITH SUPERUSER LOGIN PASSWORD '$password;"
Кажется, что-то с цитированием не так, но я не могу найти, в чем дело. Я должен передать переменную $password
и команду как пользователь postgres. Кто-нибудь может мне помочь?
Заранее спасибо
Ответ №1:
Ваши цитаты даже не совпадают. Вы можете избежать двойных кавычек внутри двойных кавычек, и нет необходимости избегать одинарных кавычек.
su postgres -c "/usr/bin/psql -c "CREATE ROLE username WITH SUPERUSER LOGIN PASSWORD '$password';""
Обратите внимание, что user
это недопустимое имя в SQL.