来自脚本 shell 的 Postgres

来自脚本 shell 的 Postgres

您好,我正在尝试与所有者创建一个数据库!默认情况下所有者是 postgres,我想在用户创建数据库时更改它

read -p "Enter owner database name : " $owner
read -p "Enter database name : " $my_db
sudo -i -u postgres psql -c 'CREATE DATABASE $my_db OWNER $owner'

我测试了这一行,但它创建了一个数据库名称“owner”

有人能帮我吗 ??

答案1

我在您的代码片段中看到两个问题:

  1. $owner

    read -p "Enter owner database name : " $owner
    

    扩大变量owner;它应该是

    read -p "Enter owner database name : " owner
    

    没有$;同样的事情$my_db

  2. 中的单引号

    sudo -i -u postgres psql -c 'CREATE DATABASE $my_db OWNER $owner'
    

    $my_db防止和的扩展$owner。它应该是

    sudo -i -u postgres psql -c "CREATE DATABASE $my_db OWNER $owner"
    

    (注意用双引号代替单引号)。完整的解释可以在shell 中的 "..."、'...'、$'...' 和 $"..." 引号之间有什么区别?

相关内容