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