console - How does one output bold text in Bash?

ID : 10001

viewed : 34

Tags : bashconsoleformattingechobash

Top 5 Answer for console - How does one output bold text in Bash?

vote vote

92

The most compatible way of doing this is using tput to discover the right sequences to send to the terminal:

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

then you can use the variables $bold and $normal to format things:

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

gives

this is bold but this isn't

vote vote

90

In order to apply a style on your string, you can use a command like:

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

Explanation:

  • echo -e - The -e option means that escaped (backslashed) strings will be interpreted
  • \033 - escaped sequence represents beginning/ending of the style
  • lowercase m - indicates the end of the sequence
  • 1 - Bold attribute (see below for more)
  • [0m - resets all attributes, colors, formatting, etc.

The possible integers are:

  • 0 - Normal Style
  • 1 - Bold
  • 2 - Dim
  • 3 - Italic
  • 4 - Underlined
  • 5 - Blinking
  • 7 - Reverse
  • 8 - Invisible
vote vote

72

I assume bash is running on a vt100-compatible terminal in which the user did not explicitly turn off the support for formatting.

First, turn on support for special characters in echo, using -e option. Later, use ansi escape sequence ESC[1m, like:

echo -e "\033[1mSome Text" 

More on ansi escape sequences for example here: ascii-table.com/ansi-escape-sequences-vt-100.php

vote vote

63

In theory like so:

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

But in practice it may be interpreted as "high intensity" color instead.

(source: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html)

vote vote

51

This is an old post but regardless, you can also get boldface and italic characters by leveraging utf-32. There are even greek and math symbols that can be used as well as the roman alphabet.

Top 3 video Explaining console - How does one output bold text in Bash?

Related QUESTION?