将shell变量传递给ssh

hax*_*ode 4 variables ssh bash shell

我阅读了关于在远程ssh中传递变量的其他帖子,但这些解决方案对我来说似乎不起作用.

这是我的情况:我在我的shell脚本(在本地机器上)填充变量的值,然后通过ssh 在另一个系统上使用.我理解为什么这不起作用,但我想找到一种方法通过ssh在另一个系统的本地shell中使用值.

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

echo "$BUILD_SERVER"
echo "$ANOTHER_SERVER"

ENDSSH
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,这些变量为null.有没有办法将值传递给ssh?

hax*_*ode 7

我想到了.我正在做以下事情:

ssh $USERNAME@$BUILD_SERVER << 'ENDSSH'
Run Code Online (Sandbox Code Playgroud)

我删除了单引号,它现在解释了允许我的局部变量.如果我想在远程服务器上使用变量,我只需用"\"来转义它们

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
Run Code Online (Sandbox Code Playgroud)