无法远程查询 rpm

无法远程查询 rpm

我正在使用--qfflag查询 rpm 数据库

rpm -q --qf '<prm><N>%{N}</N></rpm>' --all

这在本地工作正常,现在当我尝试ssh

 ssh -l root ${host} rpm -q --qf '<prm><N>%{N}</N></rpm>' --all

我明白了

bash: -c: line 0: syntax error near unexpected token '<' 
bash: -c: line 0: `rpm -q --qf <prm><N>%{N}</N></rpm> --all'

注意

  • 第二行有一个反引号和一个前引号,
  • 使用双引号给出同样的错误,
  • 实际使用使用%{N},, %{V}...%{INSTALLTIME:date}

我遗漏了一些明显的东西,但是什么?

答案1

您需要添加额外的引用级别:

ssh -l root ${host} "rpm -q --qf '<prm><N>%{N}</N></rpm>' --all"

如果没有额外的双引号,则给远程 shell 的命令为

rpm -q --qf <prm><N>%{N}</N></rpm> --all

以及 shell 的解释<等等。

错误消息中的反引号和单引号是实际的引号,用于引用命令。它们不是给予 shell 的命令的一部分。

相关内容