вход из файла в проблеме пакетного файла - PullRequest
1 голос
/ 05 мая 2011

мне нужно дважды ввести пароль для этой команды, когда она спрашивает

createuser -h localhost -P -p 5432 -s -d -r -e postgres 

я пытался

createuser -h localhost -P -p 5432 -s -d -r -e postgres < temp.txt

, где temp.txt содержит

пароль
пароль

он все еще запрашивает пароль

есть предложения?

1 Ответ

3 голосов
/ 05 мая 2011

Программа createuser, вероятно, устанавливает свое собственное соединение с терминалом, а не читает со своего стандартного ввода, это обычное поведение, когда речь идет о паролях.Вам, вероятно, повезет больше, если использовать SQL CREATE ROLE вместо createuser:

echo "CREATE ROLE postgres CREATEROLE CREATEDB SUPERUSER PASSWORD 'password';" \   
    | psql -h localhost -p 5432 databasename

Где «databasename» - это имя вашей базы данных.

Из тонкого руководства :

createuser является оболочкой для команды SQL CREATE ROLE.Нет эффективной разницы между созданием пользователей с помощью этой утилиты и других методов доступа к серверу.

...