Sua saída de echo -n "$result" | od -ctx1
mostra que sua variável result
está ficando um retorno de carro preso no final.
(Isso é mostrado como \r
e 0d
na saída od -ctx1
.)
No que diz respeito a ninguém, esse é apenas outro personagem,
e não corresponde a YES
mais do que YESK
ou YESS
.
Indiscutivelmente a melhor solução para o seu problema é mudar o seu comando mysql
não para produzir o retorno de carro. Mas eu não sei como fazer isso
e sei como consertar o resultado depois que você o colocou no shell.
Após o comando mysql
, diga
result="${result%$'\r'}"
A construção
${ variable_name % string }
(onde os espaços são adicionados para maior clareza) se expande para o valor da variável,
com a string removida do final.
Por exemplo, se $vehicle
for carriage
, então ${vehicle%riage}
será car
.
$' string '
é o mesmo que 'string'
(uma string entre aspas)
exceto que a string pode conter seqüências de escape,
como \t
para Tab e \r
para retorno de carro.
Portanto, ${result%$'\r'}
é o valor de $result
com um retorno de carro removido do final.
Agora você deve poder testá-lo com código como [[ $result == 'YES' ]]
.