2012-01-19 201 views
1

我試圖編寫一個bash腳本來執行幾個不同的用戶命令來自動執行安裝過程。Bash腳本su退出shell

在一個點上我有

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

的蘇gpadmin是以root身份運行,一旦運行該腳本停止,直到我退出gpadmin和返回爲根。

如何在不停止腳本的情況下切換到新用戶?

對不起,我試圖谷歌,但沒有發現任何工作。 任何幫助將不勝感激。

回答

3

您需要使用-c選項才能運行命令,然後退出。使用su給出的選項,它將運行gpadmin的默認shell,該shell將會阻塞,直到shell退出。通過您已有的代碼判斷,看起來gpperfmon_install是一個交互式應用程序,這是另一個問題。有時你可以使用這裏的文件,但在其他情況下,你需要使用expect

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