На консоли bash вы можете использовать CTRL-V для дословного ввода управляющего символа. Это еще не поддерживается U-Boot. Но я представил патч, чтобы включить это, ср. https://patchwork.ozlabs.org/project/uboot/list/?series=152686.
Команда эха U-Boot не знает escape-последовательности '\ x', но дословно копирует escape-символ в консоль.
Так вот что Вы можете сделать:
Создать скрипт test.txt с вашими эхо-командами, который содержит escape-последовательности.
echo -e 'echo \e[33mError\e[37m\necho \e[32mWarning\e[37m' > test.txt
Я покажу его ниже в шестнадцатеричном формате, чтобы стало понятно, что в file:
00000000 65 63 68 6F 20 1B 5B 33 33 6D 45 72 echo .[33mEr
0000000C 72 6F 72 1B 5B 33 37 6D 0A 65 63 68 ror.[37m.ech
00000018 6F 20 1B 5B 33 32 6D 57 61 72 6E 69 o .[32mWarni
00000024 6E 67 1B 5B 33 37 6D 0A ng.[37m.
Преобразуйте это в образ U-Boot
mkimage -T script -n 'test' -d test.txt test.scr
В U-Boot загрузите скрипт. Я сделал это, используя tFTP:
dhcp $script_addr_r test.scr
Теперь вы можете выполнить скрипт
source $script_addr_r
Когда U-Boot собирается с CONFIG_DISTRO_DEFAULTS = y, он будет искать скрипты boot.scr.uimg и boot.scr на вашем загрузочном устройстве. Так что это, вероятно, где вы хотите интегрировать escape-последовательности.