[: =: uenig operatør forventede [duplikat]

Dette spørgsmål har allerede svar her :

Svar

I dine tests, hvis kommandosubstitutionen $(adb -s ...) genererer en streng med flere ord, shell behandler den som en syntaksfejl. Du bliver nødt til at citere udvidelserne:

[ "$(adb -s ...)" = *"Is the system running?"* ] 

Resultatet af en ikke-citeret kommandosubstitution vil undergå opdeling og filnavn globbing ligesom en ikke-citeret variabel udvidelse gør. Citering af udvidelsen undgår dette. I dit tilfælde er det splittelsen, der forårsager problemer.

Når kommandosubstitutionen er udvidet, kan testen muligvis se ud som

if [ word1 word2 word3 = *"some string"* ] 

Dette er helt klart en syntaksfejl.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *