So You Like Color--The Mysterious ^[[ Characters

 in
Learn how to make the text in your xterm blink magenta against a cyan background--even in your C programs.
______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Bypass the need for CTRL-V ESC

Themilkman's picture

If you want to omit the CTRL-V ESC key sequence you can use \033 instead.

So the lines would read echo "\033[0;31;40m In Color"
and echo "\033[0;37;40m"

This makes it easier to type and to have in scripts.

Excellent post

Chris Hampson's picture

A fantastic post, I'm just about to do some scripts involving interpreting these colour codes from the logs from the screen utility, this page was invaluable.

Keep up the good work :-)

Cool Tutorial, but...

Matt Cudmore's picture

Cool tutorial, but, I noticed that in the two coding examples you #define BLINK as 4, when it's actually supposed to be '5'

It's just a small type-o, but I thought I'd let you know just incase someone (such as myself) tries to learn from one of the examples without first looking to the list that correctly defines BLINK as 5.

Inspired me to write a library

John Holden's picture

It's been a slow day before exams started, so I went and wrote a C header I've named SimpleColors after reading this article: CVS (tarball). Great information!

This link is broken!

Anonymous's picture

This link is broken!

awesome

herbmaster's picture

OMG, this is awesome. I've been wondering for about three years how to do colors in c(besides using ncurses). I just happened to be bored and decided to checkout lj's website since I have a subscription and really like the mag.

I think the editors are retarded for not putting this stuff in the magazine. I mean, I have to look at a computer monitor 12 hours a day and I'd really rather go home and read this stuff from the print mag.

But anyway, awsome article Pradeep. Thanks!

bugs in code

Anonymous's picture

In your while loop, the second and third if statements are incorrect. It looks like you copied/pasted the first statement and did not change the conditions -- you are comparing attr when it should be fg and then bg.

RE: bugs in code

Anonymous's picture

Sorry, forgot to mention that is for the "Demo of Colors" program.

Will Linux make computers soo

Anonymous's picture

LINUX is no brand

webdesign hamburg's picture

and never will be. So Linux as a organization could not exist. And you cannot build real material things over the web, cause your hands doesnt fit into the cables :)

Re:

A@A's picture

In USSR was not any commercical company. But this counrty was better than USA.
Communism rulezzz!

Such a thing could be

gentoo user's picture

Such a thing could be written by the person who never lived in both countries nor US nor USSR. It seems the author of the previous comment is a teen who grown up in Ukraine as an independent country and considers that USSR was a communist state... Funny :)

look it up

Anonymous's picture

Actually the Ukraine beeing a part of the USSR is not that long ago! They became independant 1991.

cool article. i finally under

Anonymous's picture

cool article. i finally understood colors... although a msg about that it is not possible to paste the escape sequence into your terminal would be good.

But what about outputting to a file?

Boom's picture

Hi, I use escape sequences in my program but then if I redirect the output to a file, I start seeing all these escape characters in there. Is there a way that I can disable this functionality when outputting to a file?

istty

sde's picture
White Paper
Fabric-Based Computing Enables Optimized Hyperscale Data Centers

Today’s modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a “one size fits all” enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.

Learn More

Sponsored by AMD

White Paper
Red Hat White Paper: Using an Open Source Framework to Catch the Bad Guy

Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6

Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.

Learn more about catching the bad guy in this free white paper.

Learn More

Sponsored by DLT Solutions