您好,我正在尝试与所有者创建一个数据库!默认情况下所有者是 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
我在您的代码片段中看到两个问题:
$owner
在read -p "Enter owner database name : " $owner
扩大变量
owner
;它应该是read -p "Enter owner database name : " owner
没有
$
;同样的事情$my_db
;中的单引号
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 中的 "..."、'...'、$'...' 和 $"..." 引号之间有什么区别?