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

Sql 能够在命令行中创建postgres数据库,但不能在bash脚本中创建,sql,bash,postgresql,psql,Sql,Bash,Postgresql,Psql,我正在尝试编写一个bash脚本,它可以自动创建和填充数据库 我发现我可以使用以下命令在命令行中创建数据库: sudo su postgres psql -c 'CREATE DATABASE routing;' exit 我后来看到了数据库。但是,当我将它们放入shell脚本并运行它(使用sudo)时,数据库不会被创建。有什么想法吗?在您sudo su之后,您将成为另一个用户。此时脚本将停止执行,直到您退出用户,然后它将继续执行 相反,如果您想作为postgres运行某些内容,请尝试以下smt

我正在尝试编写一个bash脚本,它可以自动创建和填充数据库

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

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

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

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

相反,如果您想作为postgres运行某些内容,请尝试以下smth:

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

sudo su postgres好的,那就行了。。。
EOF
语句是什么让它起作用的在multilieso中指定我想作为postgres运行的命令的一种简便方法是
yes,因此如果您想作为postgres运行更多命令,请将其置于