代码之家  ›  专栏  ›  技术社区  ›  lapots

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

  •  1
  • lapots  · 技术社区  · 6 年前

    psql

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

    其中我作为第一个参数传递

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

    当登录名和密码像123这样非常标准时,它就工作了。

    但是当我尝试使用密码连接时,例如 123412@15!12$ 由于密码不正确,它将失败。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kubator    6 年前

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

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

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