Ответы:
Как документировано, вы можете запускать мета-команды через --command
опцию.
sudo -u postgres psql --command '\password postgres'
Одинарные кавычки гарантируют, что оболочка не обрабатывает обратную косую черту как escape-символ.
sudo -u postgres psql --command "\password"
. Интересно, почему мой вопрос был отклонен.
"\\..."
.
The backslash retains its special meaning only when followed by one of the following characters: ‘$’, ‘`’, ‘"’, ‘\’, or newline.
Я думаю, именно поэтому "\password"
работал нормально.
Вместо использования команды psql \password
, которая ожидает интерактивный терминал, вы можете использовать:
ALTER USER postgres WITH PASSWORD 'newpassword';
Скажем, с помощью psql -c
команды:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'newpassword';"
man
команду. Пожалуйста, обязательно попробуйтеman psql
в будущем.