我正在尝试编写一个自动创建和填充数据库的bash脚本。
我发现我可以使用这些命令在命令行中创建数据库:
sudo su postgres
psql -c 'CREATE DATABASE routing;'
exit
之后我看到了数据库。但是,当我将它们放入shell脚本并运行它(使用sudo)时,不会创建数据库。有什么想法吗?
答案 0 :(得分:1)
在您sudo su
之后,您成为另一位用户。此时脚本将停止执行,直到退出用户,然后它将继续执行。
相反,如果你想以postgres的形式运行某些东西,请尝试像这样的smth:
sudo su postgres <<EOF
psql -c 'CREATE DATABASE routing;'
EOF
exit