繁体   English   中英

Bash脚本su退出shell

[英]Bash Script su exiting shell

我试图编写一个bash脚本,以不同的用户身份执行几个命令以自动化安装过程。

有一点我有

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

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

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

对不起,很抱歉,我尝试使用Google进行搜索,但没有发现任何有效的方法。 任何帮助将不胜感激。

您需要使用-c选项来运行su,以使其运行命令然后退出。 使用您为su提供的选项,它将运行gpadmin的默认外壳程序,该外壳程序将阻塞直到外壳程序退出。 从您已有的代码来看,看来gpperfmon_install是一个交互式应用程序,这是另一个问题。 有时您可以使用here文档,但在其他情况下,则需要使用expect

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

暂无
暂无

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

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