在脚本中使用反引号(`)而不是ssh

时间:2015-09-09 10:52:19

标签: bash shell ssh

我有一个命令,当我在本地运行时,我使用反引号来获取其中包含的命令的输出,我想通过ssh发送它(这不是实际的命令,而是一个缩短的例子)< / p>

cat `ls -alr | grep 'someregex'`

我尝试使用

ssh -f hostname cat `ls | grep 'someregex'`

然而这并没有像我期望的那样发挥作用而是在本地执行反引号,有没有人知道解决这个问题?

1 个答案:

答案 0 :(得分:3)

尝试将命令括在引号中:

ssh -f hostname 'cat `ls | grep "someregex"`'

请注意,内部引号必须替换为双引号。

另外,请注意,您不能将整个命令括在双引号中,因为bash会在调用ssh之前在本地扩展子shell。例如,比较以下命令:

$ echo "`echo foo`"
foo
$ echo '`echo foo`'
`echo foo`