shell 脚本 psql 中的引用问题
Problem with quoting in shell script psql
我尝试在 shell (/bin/sh) 脚本中使用以下内容,但我不断收到错误消息:
su postgres -c "/usr/bin/psql -c \'CREATE ROLE user WITH SUPERUSER LOGIN PASSWORD \'$password;"
似乎引号有问题,但我找不到是什么。我应该以 postgres 用户身份传递变量 $password
和命令。有人可以帮助我吗?
提前致谢
你的报价甚至都不匹配。双引号内可以转义双引号,单引号就不用转义了。
su postgres -c "/usr/bin/psql -c \"CREATE ROLE username WITH SUPERUSER LOGIN PASSWORD '$password';\""
请注意 user
不是 SQL 中的有效名称。
我尝试在 shell (/bin/sh) 脚本中使用以下内容,但我不断收到错误消息:
su postgres -c "/usr/bin/psql -c \'CREATE ROLE user WITH SUPERUSER LOGIN PASSWORD \'$password;"
似乎引号有问题,但我找不到是什么。我应该以 postgres 用户身份传递变量 $password
和命令。有人可以帮助我吗?
提前致谢
你的报价甚至都不匹配。双引号内可以转义双引号,单引号就不用转义了。
su postgres -c "/usr/bin/psql -c \"CREATE ROLE username WITH SUPERUSER LOGIN PASSWORD '$password';\""
请注意 user
不是 SQL 中的有效名称。