将shell变量传递给ssh

时间:2013-04-05 16:27:03

标签: bash shell variables ssh

我阅读了有关在远程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

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

1 个答案:

答案 0 :(得分:6)

我明白了。在我正在做以下事情的路线上:

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