W twoich testach, jeśli podstawienie polecenia $(adb -s ...)
generuje ciąg składający się z wielu słów, powłoka potraktuje to jako błąd składniowy. Będziesz musiał zacytować rozszerzenia:
[ "$(adb -s ...)" = *"Is the system running?"* ]
Wynik podstawienia niecytowanego polecenia zostanie podzielony i rozłożony na nazwy pliku, tak jak robi to interpretacja niecytowanych zmiennych. Cytowanie rozszerzenia pozwala tego uniknąć. W twoim przypadku to właśnie podział powoduje problemy.
Po rozszerzeniu podstawiania poleceń test może wyglądać mniej więcej tak:
if [ word1 word2 word3 = *"some string"* ]
To jest ewidentnie błąd składniowy.