Символ "!", помещенный в двойные кавычки, порождает сообщение об ошибке, если команда вводится с командной строки. Объясняется тем, что этот символ интерпретируется bash, как попытка обращения к истории команд. Можно обойти эту особенность, используя что-то вроде:
sudo -u postgres psql -U postgres -c 'alter user postgres with password'\''A******e!qA'\'';'
Выглядит устрашающе, но для понимания можно разделить SQL-запрос на следующие части:
1) Первая часть 'alter user postgres with password' - экранируется одиночными кавычками
2) Первая кавычка \' - экранируется слешем
3) Пароль 'A******e!qA' - экранируется одиночными кавычками. Восклицательный знак больше не интерпретируется, как обращение к истории запросов
4) Вторая кавычка \' - также, как и первая экранируется слешем
5) Оставшаяся часть, в виде ';' - экранируется кавычками
Вот такое вот экранирование экранирования)