5

リモート ssh で変数を渡すことに関する他の投稿を読みましたが、これらの解決策はうまくいかないようです。

私の状況は次のとおりです。(ローカル マシン上の) シェル スクリプト全体で変数の値を設定しています。これは、ssh 経由で別のシステムで使用されます。これが機能しない理由は理解していますが、ssh を介して別のシステムのローカル シェルで値を使用する方法を見つけたいと考えています。

BUILD_SERVER="my_server"
ANOTHER_SERVER="my_server2"
ssh $USERNAME@$BUILD_SERVER << 'ENDSSH'

echo "$BUILD_SERVER"
echo "$ANOTHER_SERVER"

ENDSSH

このコードを実行すると、これらの変数は null になります。値を ssh に渡す方法はありますか?

4

1 に答える 1

10

私はそれを考え出した。私が次のことをしていた行で:

ssh $USERNAME@$BUILD_SERVER << 'ENDSSH'

一重引用符を削除したところ、ローカル変数の許可が解釈されるようになりました。リモートサーバーで変数を使用したい場合は、「\」でエスケープするだけです

ssh $USERNAME@$BUILD_SERVER << ENDSSH

echo $BUILD_SERVER     # echos the local server variable
LOCAL_SERVER="local_server"

echo \$LOCAL_SERVER    # echos the remote server variable

ENDSSH
于 2013-04-05T16:44:40.717 に答える