[: =: očekává se unární operátor [duplikát]

Tato otázka již má odpovědi zde :

Odpověď

Ve vašich testech, pokud substituce příkazu $(adb -s ...) vygeneruje víceslovný řetězec, prostředí s ním bude zacházet jako s chybou syntaxe. Budete muset uvést rozšíření:

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

Výsledek nahrazení nekótovaných příkazů bude rozdělen a globován souborů stejně jako rozšíření nekótovaných proměnných. Citování expanze se tomu vyhne. Ve vašem případě je to rozdělení, které způsobuje problémy.

S rozšířenou substitucí příkazů může test vypadat podobně jako

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

Toto je zjevně syntaktická chyba.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *