Как каждый производит полужирный текст в Bash?

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

echo "Some Text"

Действительно ли я могу отформатировать текст? Я хотел бы сделать это полужирным.

223
задан codeforester 5 February 2017 в 10:12
поделиться

3 ответа

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

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

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

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

дает

, это жирный шрифт , но это не

394
ответ дан 23 November 2019 в 03:59
поделиться

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

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

echo -e "\033[1mSome Text"

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

45
ответ дан 23 November 2019 в 03:59
поделиться

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

# 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 )

13
ответ дан 23 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: