Search code examples
bashconsoleformattingecho

How does one output bold text in Bash?


I'm writing a Bash script that prints some text to the screen:

echo "Some Text"

Can I format the text? I would like to make it bold.


Solution

  • 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

    Note that normal will turn off all formatting (so if you have other formatting - such as colours - that will be disabled, too).