my question is, how did the output of this binary file change how bash interprets Unicode characters?
Terminais padrão Unix suportam comandos ANSI / VT-100 que podem controlar os cursores, as cores, e as fontes. Quando você digita um arquivo binário na tela, é provável que alguns dos caracteres binários coincidam acidentalmente com esses códigos de controle e definam as propriedades do seu terminal.
Para retornar seu terminal ao estado padrão, execute:
reset
Exemplos de seqüências de controle do VT-100
Se você quiser que o texto em seu temporário pisque, digite:
echo -e '\E[5m'
Se você quiser mudar a exibição para reverter o vídeo, digite:
echo -e '\E[7m'
Como um exemplo mais complexo, considere o comando make
, que pode produzir muitos resultados. Para facilitar a identificação das coisas importantes, convém destacar ERR
no vídeo reverso enquanto exibe WARNING
em negrito. O código a seguir adiciona as seqüências de controles VT-100 à saída de make
para obter este destaque no terminal :
make 2>&1 | sed -e 's/.*\bERR.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bWARN.*/\x1b[1m&\x1b[0m/i'
O acima adiciona sequências de controle intencionalmente. Quando um arquivo binário é digitado na tela, não há como dizer quais sequências de controle do VT-100 serão acidentalmente ativadas.