我正在尝试使用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/