$'…'
— это функция ksh93, которая также присутствует в zsh, bash, mksh, FreeBSD sh и в некоторых сборках BusyBox sh (BusyBox ash, созданных с помощьюENABLE_ASH_BASH_COMPAT
). Его еще нет в языке POSIX sh. Общие Bourne -, такие как оболочки, которые не имеют его, включают тире (, который /bin/sh
по умолчанию в Ubuntu среди прочих ), ksh88, оболочка Bourne, NetBSD sh, yash, производные от pdksh, отличные от mksh и некоторые сборки BusyBox.
Портативный способ получить обратную косую черту -и восьмеричную обратную косую черту -, проанализированные как управляющие символы, заключается в использованииprintf
. Он присутствует во всех системах, совместимых с POSIX -.
esc=$(printf '\033') # assuming an ASCII (as opposed to EBCDIC) system
col_green="${esc}[32;01m"
Обратите внимание, что \e
не является переносимым. Он поддерживается многими реализациями printf
, но не той, что в тире¹. Вместо этого используйте восьмеричный код.
¹ Поддерживается в Debian и его производных, поставляемых как минимум 0.5.8 -2.4, например. начиная с Debian Stretch и Ubuntu 17.04.
Вам нужно установить libdrm-dev
вместо:
sudo apt install libdrm-dev/jessie-backports
Я предполагаю, что вы обновили конфигурацию репозитория для бэкпортов Джесси; подробности см. в Не удалось получить репозиторий бэкпортов Джесси .