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' ]] .