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.
Thank you.
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.
Thank you.
In theory like so: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html But in practice it may be interpreted as "high intensity" color instead.
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
The most compatible way of doing this is usingi 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