You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ssh在远程服务器执行含反引号、awk的变量赋值命令

执行远程命令的正确写法

你可以直接使用下方经过转义处理的命令,避免特殊字符被本地shell提前解析:

ssh MyServer 'export EXTERNAL_IP=`hostname -I | awk '\''{print $1}'\''` && echo $EXTERNAL_IP'

原理解释

  • 外层单引号用来包裹整个远程命令段,避免本地shell提前解析反引号、$等特殊字符,确保命令内容原样传递到远程服务器执行
  • awk参数中的单引号无法直接出现在单引号包裹的内容中,因此使用'\''格式转义:第一个'结束当前单引号段,\'输出一个转义后的单引号,最后一个'重新开启单引号段继续包裹后续内容

如果你觉得单引号转义比较麻烦,也可以使用双引号包裹的版本,只要给所有远程侧的特殊字符加转义符即可:

ssh MyServer "export EXTERNAL_IP=\`hostname -I | awk '{print \$1}'\` && echo \$EXTERNAL_IP"

两种写法执行后都会在远程服务器的当前命令执行上下文中设置EXTERNAL_IP变量,同时输出获取到的第一个IP地址。如果需要变量长期生效,可将赋值命令写入远程服务器的~/.bashrc或~/.profile等shell配置文件中。


内容的提问来源于stack exchange,提问作者Morteza Malekabadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:24:04