Diese Frage hat hier bereits Antworten :
Antwort
In Ihren Tests, wenn Die Befehlssubstitution $(adb -s ...)
generiert eine Zeichenfolge mit mehreren Wörtern. Die Shell behandelt sie als Syntaxfehler. Sie müssen die Erweiterungen angeben:
[ "$(adb -s ...)" = *"Is the system running?"* ]
Das Ergebnis einer nicht zitierten Befehlssubstitution wird genau wie eine nicht zitierte Variablenerweiterung aufgeteilt und mit Dateinamen versehen. Das Zitieren der Erweiterung vermeidet dies. In Ihrem Fall ist es die Aufteilung, die Probleme verursacht.
Wenn die Befehlssubstitution erweitert ist, sieht der Test möglicherweise so aus wie
if [ word1 word2 word3 = *"some string"* ]
Dies ist eindeutig ein Syntaxfehler.