Bash脚本su退出shell

时间:2012-01-19 14:10:52

标签: bash shell su

我正在尝试编写一个bash脚本,该脚本以不同的用户身份执行多个命令,以自动执行安装过程。

有一次我有

su gpadmin
gpperfmon_install --enable --password password --port 5432
y  
gpstar
y 

su gpadmin以root身份运行,一旦运行,脚本将停止,直到我退出gpadmin并以root身份返回。

如何在不停止脚本的情况下切换到新用户?

对不起我的无知,我试图google但发现没有任何效果。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您需要使用su的-c选项才能运行命令然后退出。使用su给出的选项,它将运行gpadmin的默认shell,它将阻塞直到shell退出。根据您已有的代码判断,gpperfmon_install似乎是一个交互式应用程序,这是另一个问题。有时您可以使用此处的文档,但在其他情况下,您需要使用expect

su gpadmin -c 'gpperfmon_install --enable --password password --port 5432 << EOF
y
gpstar
y
EOF'