SSH 远程执行带有特殊字符的命令

SSH 远程执行带有特殊字符的命令

我试图从我的 shell 运行它:

我有一堆机器,所以我的 .bash_profile 中有这个

function sssh() {
  ssh -i ~/.ssh/supersecret.pem $@
}

这是命令:

export BOX=mybox.a.domain.com
sssh www-data@$BOX "tail -n 1 /path/to/logs/some.log | awk -F '\t' '{print $1}'"

日志文件由制表符分隔。因此,-F '\t'在 awk 上——这正是问题所在。它被转义并且没有显示我想要的列。当我tail -n 1 /path/to/logs/some.log | awk -F '\t' '{print $1}'在盒子上本地运行时,它按预期工作。我该如何解决这个问题?

答案1

经过反复尝试后我找到了答案:

ssh www-data@$BOX "tail -n 1 /server/musicgraph/prod/logs/dao.log | awk -F\$'\\t' '{print \$1}'"

相关内容