我需要编写一个脚本,将DB模式导入PostgreSQL数据库,该数据库将作为更大的构建脚本的一部分运行。我以root身份运行以下脚本。
#Change ownership of copied Schema
chown postgres:postgres /var/lib/pgsql/ddl.sql
su - postgres
cd ~
psql -Ubuild test < /var/lib/pgsql/ddl.sql
exit
我遇到的问题是,要实际允许导入工作,我必须在脚本执行完毕后键入exit。我已经尝试在脚本的末尾添加一个额外的退出,但它似乎没有什么区别。
任何想法都会很棒
答案 0 :(得分:1)
也许尝试用&amp;:
将它放在背景上#!/bin/bash
chown postgres:postgres /var/lib/pgsql/ddl.sql
su - postgres
cd ~
psql -Ubuild test < /var/lib/pgsql/ddl.sql &
确保在脚本中运行它可能是为了防止作业控制。
如果在处理期间暂停,请尝试添加更多配置:
set +o monitor
psql -Ubuild test < /var/lib/pgsql/ddl.sql &
disown
当您已使用su
指定其他用户时,确定仍需要postgres
至-Ubuild
吗?