Мой вопрос: как изменился вывод этого двоичного файла, как bash интерпретирует символы Юникода?
Стандартные терминалы Unix поддерживают команды ANSI/VT-100, которые могут управлять курсорами, цветами и шрифтами. Когда вы вводите двоичный файл на экран, вполне вероятно, что некоторые из двоичных символов будут случайно совпадать с такими управляющими кодами и устанавливать свойства вашего терминала.
Чтобы вернуть терминал в состояние по умолчанию, выполните:
reset
Примеры контрольных последовательностей VT-100
Если вы хотите, чтобы текст на вашем терминале мигал, введите:
echo -e '\E[5m'
Если вы хотите переключить дисплей в обратном направлении, введите:
echo -e '\E[7m'
В качестве более сложного примера рассмотрим команду make
которая может выводить много информации. Чтобы было легче заметить важные вещи, вы можете выделить ERR
в обратном видео, отображая WARNING
жирным шрифтом. Следующий код добавляет последовательности управления VT-100 в вывод make
чтобы получить эту подсветку на терминале:
make 2>&1 | sed -e 's/.*\bERR.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bWARN.*/\x1b[1m&\x1b[0m/i'
Вышеизложенное добавляет последовательности управления намеренно. Когда двоичный файл набирается на экране, невозможно сказать, какие управляющие последовательности VT-100 будут случайно активированы.