подключение к базе данных с паролем, содержащим знаки доллара и восклицательные знаки - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь открыть соединение, используя psql к базе данных.Строка подключения выглядела так:

psql -A -t -c "sql query" postgresql://$1@$2/$3

Где я передал в качестве первого параметра

$1 = login:password
$2 = localhost:5432
$3 = dbname

Это работало с штрафом, когда логин и пароль были довольно стандартными, такими как 123 и т. Д.

Но когда я пытаюсь подключиться с помощью пароля, подобного 123412@15!12$, происходит сбой с неверным паролем.

Как экранировать это свойство?

1 Ответ

0 голосов
/ 22 ноября 2018

Я бы использовал безопасное размещение переменных:

psql -A -t -c "sql query" "postgresql://${1}@${2}/${3}"

Кроме того, параметры $ 1, $ 2, $ 3 должны быть переданы как:

script.sh 'login:password' 'localhost:5432' 'dbname'
...