2011-06-29 24 views
0

我正在使用hp Unix機器。我試圖通過SSH執行遠程腳本。 我的目標腳本在內部使用環境變量值。 當我手動執行ssh並執行echo $(env_vairable_name)時,它會打印該值。 但是,當我遠程執行腳本時,它不會獲得env變量值。 我試着blow命令來執行遠程腳本。 ssh remote_user @ remote_hostname「〜/ my_script_on_remote.ksh」。 請指教。在遠程服務器上執行腳本時無法獲取環境變量值

謝謝。

+1

你能告訴我們你的劇本至少有一部分嗎? – cnicutar

+0

這是分配如何IM值: DB_USER = $ ASMM_INSTALL_DB_USER db_pwd = $ ASMM_INSTALL_DB_PASSWORD db_instance = $使用它們 集ASMM_INSTALL_DB_INSTANCE 這裏IM -A資源'的sqlplus -s $ DB_USER/$ db_pwd @ $ db_instance << ENDOFSQL –

+1

它在.profile文件中設置。 –

回答

1

您應該在遠程主機上的Korn shell的啓動文件中設置環境變量。

您也可以使用文件~/.ssh/environment,但ssh(1)警告(重點):

Additionally, ssh reads ~/.ssh/environment , and adds lines of the format 「 VARNAME=value 」 to the environment if the file exists and users are allowed to change their environment. For more information, see the PermitUserEnvironment option in sshd_config(5) .

最後,您可以更改腳本以命令行參數,而不是從環境中讀取其參數。

+0

感謝您的迴應.. 〜/ .ssh/environment沒有工作,最後我傳遞了參數。 但現在我面臨着另一個問題。我的腳本正試圖連接sqlplus。雖然所有的參數都是正確的,但它會拋出錯誤消息 錯誤:SQL Plus命令執行失敗!錯誤代碼:1 在遠程腳本我使用set -A res'sqlplus -s $ db_user/$ db_pwd @ $ db_instance << ENDOFSQL命令來連接。 任何想法,爲什麼我得到這個錯誤。 謝謝。 –

+0

看起來像來自SQL Plus命令本身的錯誤消息;也是一個神祕的。我不知道這個命令是什麼,所以我無法幫助你。 –

相關問題