使用包含美元符号和感叹号的密码连接到数据库

时间:2018-11-22 09:58:12

标签: bash git-bash

我正在尝试使用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 :(得分:1)

我会使用更安全的变量放置方式:

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

另外,参数$ 1,$ 2,$ 3应传递为:

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