我有一个命令,当我在本地运行时,我使用反引号来获取其中包含的命令的输出,并且我想通过 ssh 发送它(这不是实际的命令,而是一个缩短的示例)
cat `ls -alr | grep 'someregex'`
Run Code Online (Sandbox Code Playgroud)
我尝试使用
ssh -f hostname cat `ls | grep 'someregex'`
Run Code Online (Sandbox Code Playgroud)
然而,这并不像我预期的那样,而是在本地执行反引号,有没有人知道解决这个问题的方法?
尝试将命令括在引号中:
ssh -f hostname 'cat `ls | grep "someregex"`'
Run Code Online (Sandbox Code Playgroud)
请注意,必须用双引号替换内部引号。
另外,请注意,您不能将整个命令括在双引号中,因为 bash 会在调用ssh. 例如,比较以下命令:
$ echo "`echo foo`"
foo
$ echo '`echo foo`'
`echo foo`
Run Code Online (Sandbox Code Playgroud)