#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
Комментариев нет:
Отправить комментарий