#linux #postgresql #bash
Добрый день, коллеги! Как отредактировать следующую строку для её корректного исполнения? $ su postgres -c 'psql -c "alter role postgres with password 'postgres';"' Проблема, собственно, в средних кавычках (password 'postgres') Скрипт выполняется от имени root. p.s. есть обходной вариант - пометить строку psql -c "alter role postgres with password 'postgres';" в ещё один sh-скрипт, и уже его выполнять через su user -c, но я не считаю это правильным.
Ответы
Ответ 1
Попробуйте так: # su postgres -c 'psql -c "alter role postgres with password '"'"'postgres'"'"';"'Ответ 2
Экранирование же ж в помощь: su postgres -c "psql -c \"alter role postgres with password 'postgres';\""Ответ 3
Один из -c можно исключить следующим образом: $ sudo -u postgres -- psql -c "alter role postgres with password 'postgres';"Ответ 4
В одинарных кавычках все символы. Используйте двойные кавычки в них можно экранировать одинарные и двойные. su postgres -c "psql -c \"alter role postgres with password \'postgres\' ;\""Ответ 5
для больших простыней я бы рекомендовал Встроенные документы << EOF
Комментариев нет:
Отправить комментарий