2011-01-12 10 views
1

sshを使用してリモートマシンに接続するときに変数を入力する際に​​問題があります。ssh経由で接続するときに、グローバル変数にリモートマシンが入力してください

私はbashスクリプトで次の文を実行しようとしている:

のsshユーザー@ホスト '$ INSTALL_DIR /スクリプト/ replaceAll.sh' "$ orig_val $ new_val"。

$ INSTALL_DIRは、両方のマシンでそれぞれ異なる値を持つグローバル変数です。一方、$ orig_valおよび$ new_valは、スクリプト自体で計算される変数です。私はSunOS 5.10を使用しています

問題は、$ INSTALL_DIRがローカル値を使用し、リモート値を使用する必要があるということです。ここで間違っていることを教えてくれませんか?

答えて

0

シェルのSSHに渡す前に、変数を評価し、あなたは純粋なテキストとしての引数を処理するためにシェルを強制する必要が

2
ドル記号エスケープ

ssh [email protected] '\$INSTALL_DIR/script/replaceAll.sh'" $orig_val $new_val" 
+0

を私は、変数を行うとターゲットマシンでも解決されません。 ksh:$ INSTALL_DIR/script/replaceAll.sh:見つからない – David

+0

ところで、私は昨日ここに示唆された選択肢を使用することができましたが、今日までに何とか取り除かれました。コマンドを実行する前にプロファイルを作成すると、リモートマシンの値ssh $ user @ host 'を使用して$ INSTALL_DIRが正しく入力されました。 〜/ .profile 2>/dev/null; #コマンドはここに '; – David

関連する問題