2012-01-26 10 views
0

私は現在、インストールを自動化するためのスクリプトを用意しています。このインストール中に、rootから別のgpadminに切り替えて、インストールの最終段階を実行する必要があります。Bash su expect combo

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コマンドの後にexpectを使用しようとしたかったのです。これらは、ダニを使用して別のユーザーに渡されても、正しく呼び出されると思われますか?

答えて

0

私は周りを回った後、期待が働くことが分かった。私は間違っているとは思っていたが、私は間違っていた。

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

これはEULAを迂回するために機能し、SUプロセス全体は必要ありません。