명령 대체 $(adb -s ...)
는 다중 단어 문자열을 생성하며 쉘은이를 구문 오류로 처리합니다. 확장을 인용해야합니다.
[ "$(adb -s ...)" = *"Is the system running?"* ]
따옴표없는 명령 대체의 결과는 인용되지 않은 변수 확장과 마찬가지로 분할 및 파일 이름 globbing을 겪습니다. 확장을 인용하면 이것을 피할 수 있습니다. 귀하의 경우에는 분할로 인해 문제가 발생합니다.
명령 대체가 확장되면 테스트는 다음과 같이 보일 수 있습니다.
if [ word1 word2 word3 = *"some string"* ]
이것은 분명히 구문 오류입니다.