2012-03-05 12 views
1

引数を渡すか、リモートで実行されるbashスクリプトの変数を設定しようとしています。問題の一部は、接続後にchrootを実行するサーバーです。私がスクリプトを実行するために見つけた唯一の方法は次のようになります:bashへのリダイレクトによって実行されるbashスクリプトに引数を渡します。

ssh [email protected] 'bash -ex' < /tmp/script 

私はそのスクリプトの変数が必要です。それが何らかの形でbashに渡されるarg変数か環境変数かどうかは関係ありません。私は、そのソリューションを好きではない理由、それは明らかだと思う

sed -e s/VAR/VAR=dog/g /tmp/script > /tmp/replaced 
ssh [email protected] 'bash -ex' < /tmp/replaced 

:この問題を解決するために私は考えることができる唯一の方法は、次のような何かを行うことです。私がしたいことをすることは可能ですか?

答えて

2

SendEnv(クライアント)とAcceptEnv(サーバー)を正しく設定すると、sshに変数を送信させることができます。

VAR=dog ssh [email protected] 'bash -ex' < /tmp/replaced 
+0

私はそれを得ることができないようです。私は物事を基本的なsshサーバvar = dogに取り除いた。それは私をログに記録し、私のbashrcファイルを実行し、私は戻ってきます。私は何が欠けているのですか?私が考えることができるのはOpenSSH 3.4 vs 5.1 – JeffCharter

+0

です。残念ながら、私のマシンの1つは、AccpectEnvをサポートしていない古いバージョンのsshを持っています。私はそのボックスでsshをアップグレードすることができません。とにかく助けてくれてありがとう。私はSendEnvが存在していることを知らなかった。 – JeffCharter

関連する問題