我正在尝试使用Shell脚本创建psql数据库,我不想将脚本执行程序添加到sudoer文件中。

如果我给用户sudo权限,我们可以在命令下面运行,我想在不给普通用户任何额外权限的情况下进行操作。

sudo -u username createdb $dbname

read -e dbname
psql -U secureall -c 'create database $dbname;'


我能够读取dbname,但是该命令没有任何变量。

[username@localhost ~]$ psql -U username -c 'create database $dbname;'
ERROR:  syntax error at or near "$"
LINE 1: create database $dbname;


如何在db命令集中使用变量,或者有解决方法?

最佳答案

如何使用双引号而不是单引号。单引号不会发生变量插值。

psql -U用户名-c“创建数据库$ dbname;”

关于linux - 使用变量作为非sudo用户+创建数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54574719/

10-10 15:05