[: =: operador unário esperado [duplicado] (Português)

Esta pergunta já tem respostas aqui :

Resposta

Em seus testes, se a substituição do comando $(adb -s ...) gera uma string com várias palavras, o shell irá tratá-la como um erro de sintaxe. Você terá que citar as expansões:

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

O resultado de uma substituição de comando sem aspas sofrerá divisão e globbing de nome de arquivo da mesma forma que uma expansão de variável sem aspas. Citar a expansão evita isso. No seu caso, é a divisão que causa problemas.

Com a substituição do comando expandida, o teste pode ser parecido com

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

Este é claramente um erro de sintaxe.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *