28

Как изменить цвет вывода echo в Linux

26

Я пытаюсь вывести текст в терминале с помощью команды echo.

Я хочу, чтобы текст был напечатан красным цветом. Как мне это сделать?

5 ответ(ов)

2

Вы можете использовать команду tput с возможностью setaf и параметром 1, чтобы установить цвет текста в красный. Вот пример, как это можно сделать:

echo "$(tput setaf 1)Hello, world$(tput sgr0)"

В этом примере tput setaf 1 задает цвет текста на красный (где 1 соответствует красному цвету), а tput sgr0 сбрасывает все атрибуты текста к настройкам по умолчанию, чтобы следующий текст выводился в стандартном цвете. Таким образом, "Hello, world" будет отображаться красным, а все последующие строки будут иметь стандартный цвет.

0

Если вы хотите улучшить читаемость кода, вы можете сначала использовать echo для вывода строки, а затем добавить цвет с помощью sed:

echo 'Hello World!' | sed $'s/World/\e[1m&\e[0m/' 

Этот подход позволяет более четко отделить логику вывода текста от форматирования, что делает код легче воспринимаемым.

0

Чтобы вывести сообщение с различным цветом, вы можете использовать следующую команду:

echo -e "\033[31;1mВаше сообщение\033[0m"

Вот таблица доступных цветов:

  • Черный: 0;30 | Темно-серый: 1;30
  • Красный: 0;31 | Светло-красный: 1;31
  • Зеленый: 0;32 | Светло-зеленый: 1;32
  • Коричневый/Оранжевый: 0;33 | Желтый: 1;33
  • Синий: 0;34 | Светло-синий: 1;34
  • Пурпурный: 0;35 | Светло-пурпурный: 1;35
  • Циан: 0;36 | Светло-циан: 1;36
  • Светло-серый: 0;37 | Белый: 1;37

Используйте соответствующий код цвета в строке, чтобы изменить цвет текста в вашем сообщении.

0

Чтобы использовать цвета в Bash-скриптах, рекомендую воспользоваться утилитой tput, чтобы вычислять коды цветов. Это более переносимый подход, который избежит проблем с ANSI-кодами (например, \E[31;1m для красного), которые могут не поддерживаться в некоторых средах, таких как Bash на OS X.

Вот пример, как это можно сделать:

BLACK=`tput setaf 0`
RED=`tput setaf 1`
GREEN=`tput setaf 2`
YELLOW=`tput setaf 3`
BLUE=`tput setaf 4`
MAGENTA=`tput setaf 5`
CYAN=`tput setaf 6`
WHITE=`tput setaf 7`

BOLD=`tput bold`
RESET=`tput sgr0`

echo -e "hello ${RED}some red text${RESET} world"

В этом скрипте мы используем tput setaf для установки цветового кода, а tput sgr0 для сброса атрибутов к терминалу. Эти команды адаптируются к различным терминалам, что делает ваш код более совместимым и удобным для использования в различных операционных системах.

0

Вы можете использовать следующий скрипт, чтобы увидеть все комбинации цветов и решить, какие из них выглядят хорошо:

for (( i = 0; i < 8; i++ )); do
    for (( j = 0; j < 8; j++ )); do
        printf "$(tput setab $i)$(tput setaf $j)(b=$i, f=$j)$(tput sgr0)\n"
    done
done

Этот код создает цикл, который перебирает значения от 0 до 7 для фона (i) и цвета текста (j). Используя команды tput, он устанавливает фоновый и текстовый цвет, а затем выводит их комбинацию в формате (b=i, f=j). $(tput sgr0) сбрасывает цвета обратно к стандартным. Это поможет вам визуально оценить, как выглядят различные сочетания цветов.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь