02-11-2011
Terminals.. in the Unix sense... have capabilities. Even pseudo-terminal graphical clients.
The "right" answer is to properly query the terminal capabilities and use the data passed back as the "right" way to present terminal attributes.
For example.... doing bold=`tput bold` (or you use $()'s for ksh or bash) will get you the capabilities string for enabling BOLD on the terminal.
sgr=`tput sgr0` will give you the string for doing a capabilities reset.
So.. then, you can:
echo "The following is ${bold}BOLD${sgr}... see it?"
To get underline, smul=`tput smul`
Now... color is HARDER. Unless you limit your terminal choices. You can look at your terminal capabilities in total using "infocmp".. HOWEVER, that assumes you have a terminal definition that adequately covers your whole set of terminal capabilities (and... having done this for a LONG time... most DO NOT cover the whole set).
On ANSI like terminals, you can usually do tput setaf <number> to set a foreground color and tput setab <number> to set a background color... Setting the palette of colors is again a VERY terminal - to - terminal specific thing... sometimes it can be altered, sometimes not. Some terminals allow selection of colors using a longer syntax wherein color values can be given. Again, color is a "less" portable option.
The termcap and (now) terminfo way of handling terminal capabilities is a VERY good and generic way of dealing with multi-vendor devices. As with most all things Unix, the "standard" is to support them all!!!!
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I work with AIX 5 and have two basic questions:
1) How do I underline/bold a word in a text output? Any way to do it with echo command?
basic example: echo "FOLDER " >> folder.txt ( I wish the word FOLDER to be underlined and bold).
2) Suppose I have the following pipe delimited... (1 Reply)
Discussion started by: clara
1 Replies
2. Shell Programming and Scripting
Hi,
I am new to shell script. Can you please tell me, whether can we specify font type and color in a shell script? If so, how to do this?
Thanks in advance. (4 Replies)
Discussion started by: Vani_Govind
4 Replies
3. Shell Programming and Scripting
Hi all,
I was to echo Hi in Red and Bold ; and echo There is in Green and bold
I got bold to working using tput bold but i am having hard time getting the color.
Any help is appreciated,
jak (4 Replies)
Discussion started by: jakSun8
4 Replies
4. Shell Programming and Scripting
hi friend ,
I am generating a csv file i,e output file
E104|0|06/04/1994|The values E005 and E001 are not equal.
E106|0|01/09/1993|The values E001 and E002 are not equal.
E106|0|01/09/1993|The values E003 and E002 are not equal.
E108|0|02/30/1995|The values R001 and E001 are not equal.... (0 Replies)
Discussion started by: charandevu
0 Replies
5. Shell Programming and Scripting
Hi,
When I am running below mentioned script then the characters become bold but after opening the same file in Windows, Instead of getting bold characters i am getting some garbage value for \033Kunal Dixit
Output in Windows (after ftp the file):
but in windows , i am getting
My name is... (0 Replies)
Discussion started by: kunal_dixit
0 Replies
6. Shell Programming and Scripting
I have a script main.shl which has few lines like this
#bold
tput smso
echo "\t\tsome statement\t\t"
tput rmso
I am executing the main.shl from the shell and redirected its output to a separate file like this
$main.shl >main.log 2>&1 &
once after running this script, if I "cat" the... (0 Replies)
Discussion started by: ramkrix
0 Replies
7. Shell Programming and Scripting
The code
echo -e "\033[34m Test \033[0m Mail"
when i execute this command line i get proper output
but when i mail the output of this command through sendmail it doesn't appear. Basically I want to send email message in diffrent colours, bold letter using shell script. (2 Replies)
Discussion started by: baps
2 Replies
8. Shell Programming and Scripting
I want to bold one word in shell script. I want the value for num bold when it is inputted. My code does not bold the value. It's like its not even there.
echo -n "Please read a number"
read num ; echo "${bold} $num ${offbold}"
Thank you,
Ccccc (6 Replies)
Discussion started by: Ccccc
6 Replies
9. UNIX for Advanced & Expert Users
Hi All,
The below is the email text and i want few words in BOLD.
I am writing the below message in to a .txt file and calling it in a function which generated email. when i run at cmd prompt it is working fine , but wehn i run a script .sh it is not working. Below is the text printing in to... (2 Replies)
Discussion started by: kiranparsha
2 Replies
TPUT(1) BSD General Commands Manual TPUT(1)
NAME
tput, clear -- terminal capability interface
SYNOPSIS
tput [-T term] attribute [attribute-args] ...
DESCRIPTION
tput makes terminal-dependent information available to users or shell applications. The options are as follows:
-T The terminal name as specified in the terminfo(5) database, for example, ``vt100'' or ``xterm''. If not specified, tput retrieves
the ``TERM'' variable from the environment.
tput outputs a string if the attribute is of type string; a number if it is of type integer. Otherwise, tput exits 0 if the terminal has the
capability and 1 if it does not, without further action.
If the attribute is of type string, and takes arguments (e.g. cursor movement, the terminfo ``cup'' sequence) the arguments are taken from
the command line immediately following the attribute.
The following special attributes are available:
clear Clear the screen (the terminfo(5) ``cl'' sequence).
init Initialize the terminal (the terminfo(5) ``is2'' sequence).
longname Print the descriptive name of the user's terminal type.
reset Reset the terminal (the terminfo(5) ``rs1, rs2, rs3'' and ``rf'' sequence).
EXIT STATUS
The exit status of tput is based on the last attribute specified. If the attribute is of type string or of type integer, tput exits 0 if the
attribute is defined for this terminal type and 1 if it is not. If the attribute is of type boolean, tput exits 0 if the terminal has this
attribute, and 1 if it does not. tput exits 2 if any error occurred.
EXAMPLES
tput cl cm 5 10 clear the screen and goto line 5 column 10
tput cm 6 11 DC 6 goto line 6 column 11 and delete 6 characters
SEE ALSO
termcap(3), termcap(5)
HISTORY
The tput command appears in 4.4BSD.
BUGS
tput can't really distinguish between different types of attributes.
Not all terminfo entries contain the reset sequence, so using the init sequence may be more useful.
BSD
September 29, 2009 BSD