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. 그렇게 말하면 내 생각에는다른 대답원하는 것을 달성할 수 있는 더 나은 방법을 제공합니다.

관련 정보