我正在尝试编写一个bash脚本,该脚本以不同的用户身份执行多个命令,以自动执行安装过程。
有一次我有
su gpadmin
gpperfmon_install --enable --password password --port 5432
y
gpstar
y
su gpadmin以root身份运行,一旦运行,脚本将停止,直到我退出gpadmin并以root身份返回。
如何在不停止脚本的情况下切换到新用户?
对不起我的无知,我试图google但发现没有任何效果。 任何帮助将不胜感激。
答案 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'