Как вывести жирный текст в Bash? - PullRequest
206 голосов
/ 28 мая 2010

Я пишу сценарий Bash, который выводит текст на экран:

echo "Some Text"

Можно ли отформатировать текст? Я хотел бы сделать это жирным шрифтом.

Ответы [ 4 ]

370 голосов
/ 28 мая 2010

Наиболее совместимый способ сделать это - использовать tput, чтобы найти правильные последовательности для отправки на терминал:

bold=$(tput bold)
normal=$(tput sgr0)

тогда вы можете использовать переменные $bold и $normal для форматирования:

echo "this is ${bold}bold${normal} but this isn't"

1010 * дает *

это жирный но это не

41 голосов
/ 28 мая 2010

Я предполагаю, что bash работает на vt100-совместимом терминале, в котором пользователь явно не отключил поддержку форматирования.

Сначала включите поддержку специальных символов в echo, используя опцию -e. Позже, используйте escape-последовательность ANSI ESC[1m, например:

echo -e "\033[1mSome Text"

Подробнее об escape-последовательностях ANSI, например, здесь: ascii-table.com / ansi-escape-sequence-vt-100.php

36 голосов
/ 25 февраля 2017

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

echo -e '\033[1mYOUR_STRING\033[0m'

Объяснение:

  • echo -e - Опция -e означает, что экранированные (с обратной косой чертой) строки будут интерпретироваться
  • \ 033 - экранированная последовательность представляет начало / конец стиля
  • строчные m - указывает конец последовательности
  • 1 - Атрибут Bold (подробнее см. Ниже)
  • [0m - сбрасывает все атрибуты, цвета, форматирование и т. Д.

Возможные целые числа:

  • 0 - Нормальный стиль
  • 1 - полужирный
  • 2 - тусклый
  • 4 - Подчеркнуто
  • 5 - мигает
  • 7 - реверс
  • 8 - Невидимый
13 голосов
/ 28 мая 2010

Теоретически так:

# BOLD
$ echo -e "\033[1mThis is a BOLD line\033[0m"
This is a BOLD line

# Using tput
tput bold 
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL

# UNDERLINE
$ echo -e "\033[4mThis is a underlined line.\033[0m"
This is a underlined line. 

Но на практике его можно интерпретировать как цвет "высокой интенсивности"

(источник: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...