我有一个在远程服务器上运行docker容器的shell脚本。
我正在尝试将远程服务器的主机名发送到容器中,但是我只是获得运行脚本的本地计算机的主机名。
该命令在脚本中如下所示:
ssh $remote "docker run -h '`hostname`' \
-e 'VARIABLE=$SCRIPT_VAR' \
-e 'HOST_HOSTNAME=`hostname`' \
..."
主机名和环境变量host.hostname都成为我的本地计算机的名称。
我知道我可以这样使用单引号:
ssh $remote 'echo "`hostname`"'
它会工作。但是后来我不能使用
$SCRIPT_VAR
这样的脚本变量我如何才能在远程服务器上进行评估,同时还能使用变量?
最佳答案
您仍然需要确保引用$SCRIPT_VAR
的扩展名,以防止其受到分词或路径名扩展的影响。
ssh $remote 'docker run -h "$(hostname)" \
-e "VARIABLE='"$SCRIPT_VAR"'" \
-e "HOST_HOSTNAME=$(hostname)" \
...'
关于linux - 防止ssh命令中参数的扩展/评估,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53298904/