I dine tester, hvis kommandosubstitusjonen $(adb -s ...)
genererer en streng med flere ord, skallet vil behandle det som en syntaksfeil. Du må sitere utvidelsene:
[ "$(adb -s ...)" = *"Is the system running?"* ]
Resultatet av en ikke-sitert kommandosubstitusjon vil gjennomgå splitting og filnavn globbing akkurat slik en ikke sitert variabel utvidelse gjør. Å sitere utvidelsen unngår dette. I ditt tilfelle er det splitting som forårsaker problemer.
Når kommandosubstitusjonen er utvidet, kan testen se ut som
if [ word1 word2 word3 = *"some string"* ]
Dette er helt klart en syntaksfeil.