5

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

当我运行此代码时,这些变量为空。有什么方法可以将值传递给 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 回答