我正在尝试搜索远程服务器中的文件。
我正在寻找的模式是] LEADER
,例如[T2] LEADER
匹配。
我的命令是:ssh myname@ip grep -r "] LEADER" logfile
但是,报告错误grep : LEADER: no such file
。我可以知道如何解决这个问题吗?
答案 0 :(得分:3)
shell取消双引号,因此远程机器上的“grep”会看到三个参数 - “]”,“LEADER”和“logfile”
更改为: ssh myname @ ip grep -r“\”] LEADER \“”logfile
答案 1 :(得分:2)
在命令周围使用单引号以防止命令被本地shell预先解释:
ssh myname@ip 'grep -r "] LEADER" logfile'
答案 2 :(得分:1)
您可以尝试:
ssh myname@ip 'grep -r "] LEADER" logfile'
它将逃离空白。
答案 3 :(得分:0)
SSH将其参数捆绑在一起(严重)以创建shell命令行。所以你要引用这个命令:
ssh user@host 'grep -r "\] LEADER" logfile'
如果遇到问题,可以使用ssh -v
来显示它传递给远程shell的内容。