【问题标题】:Problem with quoting in shell script psql在 shell 脚本 psql 中引用的问题
【发布时间】:2021-12-22 16:11:56
【问题描述】:

我正在尝试在 shell (/bin/sh) 脚本中使用以下内容,但我不断收到错误消息:

su postgres -c "/usr/bin/psql -c \'CREATE ROLE user WITH SUPERUSER LOGIN PASSWORD \'$password;"

引用的内容似乎有问题,但我找不到是什么。我应该将变量 $password 和命令作为 postgres 用户传递。有人可以帮我吗?

提前致谢

【问题讨论】:

    标签: postgresql shell scripting quoting


    【解决方案1】:

    您的报价甚至不匹配。双引号内可以转义双引号,单引号不需要转义。

    su postgres -c "/usr/bin/psql -c \"CREATE ROLE username WITH SUPERUSER LOGIN PASSWORD '$password';\""
    

    请注意,user 不是 SQL 中的有效名称。

    【讨论】:

      猜你喜欢
      • 2018-01-08
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2011-09-28
      相关资源
      最近更新 更多