Мне известны библиотеки на таких языках, как Ruby и Javascript, которые упрощают раскрашивание ваших терминальных сценариев с помощью названий цветов, таких как «красный».
Но есть ли что-то подобное для сценариев оболочки в Bash, Ksh или что-то еще?
bash
shell-script
terminal
colors
зеркало
источник
источник
Ответы:
Вы можете определить цвета в ваших скриптах bash следующим образом:
А затем используйте их для печати в нужных вам цветах:
источник
Вы можете использовать
tput
ИЛИprintf
Используя
tput
,просто создайте функцию, как показано ниже, и используйте их
Вы можете вызвать вышеуказанную функцию, используя
shw_err "WARNING:: Error bla bla"
С помощью
printf
источник
echo -e
нетprintf
, а также нуждается в предупреждении о том, что он отличается отtput
опции тем, что он не адаптируется автоматически под костюм$TERM
.В зш :
источник
print -P '%F{red}blah%f'
Для простого общего использования (полная строка текста только одного цвета, с завершающей новой строкой ) я изменил код jasonwryan следующим образом:
источник
awk -v red="$(printf '\e[1;31m%%s\e[0m\\n')" -v green="$(printf '\e[1;32m%%s\e[0m\\n')" 'BEGIN { printf red, "This text is in red"; printf green, "This text is in green" }'
Лучше использовать тот,
tput
который будет обрабатывать escape-символы в зависимости от возможностей вывода / терминала. (Если терминал не может интерпретировать\e[*
цветовые коды, он будет «загрязнен», что затруднит чтение выходных данных. (Или иногда, если выgrep
выводите такой вывод, вы увидите его\e[*
в результатах)Смотрите этот урок для
tput
.Ты можешь написать :
Вот учебник для печати цветных часов в терминале.
Также обратите внимание, что
tput
при перенаправлении STDOUT в файл все еще может быть напечатан управляющий символ:Чтобы этого не случилось, настройте
tput
переменные, как предложено в этом решении .источник