能够在命令行中创建postgres数据库,但不能在bash脚本中创建

时间:2017-08-24 13:09:27

标签: sql bash postgresql psql

我正在尝试编写一个自动创建和填充数据库的bash脚本。

我发现我可以使用这些命令在命令行中创建数据库:

sudo su postgres
psql -c 'CREATE DATABASE routing;'
exit

之后我看到了数据库。但是,当我将它们放入shell脚本并运行它(使用sudo)时,不会创建数据库。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在您sudo su之后,您成为另一位用户。此时脚本将停止执行,直到退出用户,然后它将继续执行。

相反,如果你想以postgres的形式运行某些东西,请尝试像这样的smth:

sudo su postgres <<EOF
psql -c 'CREATE DATABASE routing;'
EOF
exit