[: =: unary operatör förväntas [duplicera]

<å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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *