Bash 명령에 따옴표를 중첩하는 방법

Bash 명령에 따옴표를 중첩하는 방법

이 명령의 결과를 테스트하고 싶습니다.

dmesg | grep "Firmware patch 1563"

그래서 저는 다음과 같은 글을 쓰려고 합니다.

if [ "`dmesg | grep "Firmware patch 1563`" == "" ]

그러나 이것은 작동하지 않습니다. 이 명령을 어떻게 다시 작성해야 합니까?

답변1

명령 결과를 직접 테스트할 수 있습니다.

if dmesg | grep -q "Firmware patch 1563"

파이프의 출력이 비어 있는지 확인해야 하는 경우,명령 $()대체용그리고 당신의 중첩인용 부호독립 실행형 명령을 사용하는 것과 같습니다.

if [ -z "$(my_command | other_command "some argument")" ]

답변2

당신은 그것을 사용할 수 있습니다명령 대체곧장:

if $(dmesg | grep -q "Firmware patch 1563"); then
  # Do something here
fi

또는 더 나은 방법은 명령을 직접 사용하는 것입니다.l0b0의 답변.

답변3

당신이 쓴 내용은 효과가 있을 것입니다. 당신이 그 제안을 잊어버렸기 때문이 아닙니다. 그것은해야한다:

if [ "`dmesg | grep "Firmware patch 1563"`" == "" ]

"다음에 나오는 추가 내용을 참고하세요 1563. 그러고 보면 내 생각에는또 다른 대답원하는 것을 달성할 수 있는 더 나은 방법을 제공합니다.

관련 정보