繁体   English   中英

为什么更改用户后我的Shell脚本退出?

[英]Why does my shell script exit after changing users?

我试图创建这个小脚本,以基本上重新创建每次启动新的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脚本,并且正在尝试变得更好。

运行命令时

sudo -i -u postgres

产生了一个新的外壳。 如果此时键入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;"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM