원격으로 rpm을 쿼리할 수 없습니다.

원격으로 rpm을 쿼리할 수 없습니다.

--qf플래그를 사용하여 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"

추가 큰따옴표가 없으면 원격 셸에 대한 명령은 다음과 같습니다.

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

그리고 쉘에 대한 설명 <등이 있습니다.

오류 메시지의 백틱과 작은 따옴표는 명령을 인용하는 데 사용되는 실제 따옴표입니다. 이는 쉘에 주어진 명령의 일부가 아닙니다.

관련 정보