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