我正在尝试创建这个小脚本,基本上重新创建我每次启动新的ubuntu机器并在其上安装一些python项目时所采取的步骤。脚本一度停止。这是我切换到postgres用户的时候。它从不运行psql
命令
pip install --upgrade pip
sudo pip install virtualenv
useradd -m -p $2 $1
sudo -i -u postgres
psql -c "CREATE DATABASE $1;"
psql -c "CREATE USER $1 WITH PASSWORD '$2';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE $1 to $1;"
我可能会抨击bash脚本,我正在努力改善。
答案 0 :(得分:2)
运行命令时
sudo -i -u postgres
生成新的 shell。如果此时键入exit
,则此新shell将退出,原始shell将继续运行psql
命令(但不是postgres
用户)。
您可以执行以下操作来解决此问题:
sudo -u postgres psql -c "CREATE DATABASE $1;"
sudo -u postgres psql -c "CREATE USER $1 WITH PASSWORD '$2';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $1 to $1;"