<åt sidan class = "s-meddelande s-meddelande__info js-post-meddelande mb16" role = "status ">
Denna fråga har redan svar här :
Svar
I dina tester, om kommandosubstitutionen $(adb -s ...)
genererar en sträng med flera ord, skalet behandlar det som ett syntaxfel. Du måste citera utvidgningarna:
[ "$(adb -s ...)" = *"Is the system running?"* ]
Resultatet av en icke-citerad kommandosubstitution kommer att genomgå delning och filnamn globbing precis som en icke citerad variabel expansion gör. Att citera expansionen undviker detta. I ditt fall är det splittringen som orsakar problem.
Med kommandosubstitutionen utökad kan testet se ut som
if [ word1 word2 word3 = *"some string"* ]
Detta är helt klart ett syntaxfel.