2012-01-26 26 views
0

我目前有一個腳本來幫助我自動安裝。在安裝過程中,我必須從root用戶切換到另一個用戶gpadmin,然後運行安裝的最後一步。 在這一點上,我呼籲:Bash su expect組合

su - gpadmin -c 'echo source /usr/local/greenplum-perfmon-web-4.1.2.0-build-2/gpperfmon_path.sh > .bashrc2; 

source ~/.bashrc2; 

gpperfmon --setup' 

這工作,但我不得不手動通過EULA和其他參數。我曾經使用過這裏的文檔來完成一切,但由於某些原因,這會阻止創建安全證書並破壞安裝。爲了避免這種情況,我想在gpperfmon --setup命令後嘗試使用期望。即使這些期望被使用蜱傳遞給不同的用戶,它們是否會被正確調用?

回答

0

經過修補後,我發現期望確實有效。我錯誤地認爲我期望的確實是什麼。

spawn "/gp/install/gppermon.bin" 
expect "EULA:" 
send \003 

這有效地規避了EULA,並且不需要整個SU過程。