1

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

有一次我有

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

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

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

对不起,我的无知,我试图谷歌但没有发现任何工作。任何帮助将不胜感激。

4

1 回答 1

3

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

su gpadmin -c 'gpperfmon_install --enable --password password --port 5432 << EOF
y
gpstar
y
EOF'
于 2012-01-19T14:25:39.487 回答