我试图在执行一个命令ssh
包含`子code`或$(子代码)(我用它所有的时间,但我不知道该正式名称)首先被执行,但目标服务器。
为了讨论的方便,让我们说,这是我想要使用的命令。 Ofcourse这是可以做到的hostname
,但是这仅仅是一个简单的例子,它包含的所有格式巫术我想使用。
echo `uname -a | awk '{print $2}'`
没问题。 但你如何逃离这个正确超过发送ssh
在一个单一的命令? 下列哪项是错误的,因为它可以让服务器回复您的本地主机名。 子代码在本地执行:
ssh myServer echo `uname -a | awk '{print $2}'`
但是,想到的任何逃生ishness不工作:
$ ssh myServer echo \`uname -a | awk '{print $2}'\`
awk: cmd. line:1: {print $2}`
awk: cmd. line:1: ^ invalid char '`' in expression
$ ssh myServer echo \$(uname -a | awk '{print $2}')
bash: syntax error near unexpected token `('
$ ssh myServer echo \$\(uname -a | awk '{print $2}')
bash: syntax error near unexpected token `)'
$ ssh myServer echo \$\(uname -a | awk '{print $2}'\)
awk: cmd. line:1: {print $2})
awk: cmd. line:1: ^ syntax error
bash: -c: line 0: unexpected EOF while looking for matching `)'
bash: -c: line 1: syntax error: unexpected end of file
我想这包括使用正确转义的答案` or $() because I'd like to know if it's possible.
echo`可能是更复杂的东西。