刚刚在微博上看到这个,一直没弄明白Bash的颜色是怎么一个规则?
怎么控制颜色,打印出有规则的颜色?
用的是Escape Sequence:
http://en.wikipedia.org/wiki/Escape_s...
至于具体怎么打印颜色,可参考
https://wiki.archlinux.org/index.php/...
http://www.linuxselfhelp.com/howtos/B...
对echo做过一个简单包装。。。
第一个GitHub上的作业。。。
只支持ascii颜色。。。
cecho,直接把readme拷贝过来了。
Colorful echo for unix-like shell ( ascii color only )
A light, self-adapting wrapper of echo
, with color flags of foreground, background and action ( highlight, underline, blink ... ) . With it, you can easily colorize your output of command and shell script.
Before use cecho
, simply source it in your .zshrc, or any shell script wanted to colorize like this:
source /path/to/cecho.sh
Support multi-string in one command:
cecho -color1 message1 [ -color2 message2 ... ] [ -done ]
Support setting foreground, background and action
cecho -fg_color -bg_color -action message [...] [ -done ]
All flags have two formats, short for convenience, long for readability.
The short formats is easily memorized, which are nearly just the heads the long formats.
short | long |
---|---|
-r | -red |
-g | -green |
-y | -yellow |
-b | -blue |
-p | -purple |
-c | -cyan |
-w | -white |
-gr | -gray |
-bk | -black |
short | long |
---|---|
-br | -b_red |
-bg | -b_green |
-by | -b_yellow |
-bb | -b_blue |
-bp | -b_purple |
-bc | -b_cyan |
-bw | -b_white |
-bgr | -b_gray |
-bbk | -b_black |
short | long |
---|---|
-d | -done |
-hl | -highlight |
-ul | -underline |
-re | -reverse |
-bl | -blink |
-iv | -invisible |
short | long |
---|---|
-B | -blank |
-t | -tab |
-n | -newline |
short | long |
---|---|
-h | -help,--help |
cecho -r "hello world ! "
or
cecho -red "hello world ! "
or
cecho -r hello -B world -B !
cecho -r -t hello -B world -n !
cecho -r -by -hl "hello world ! "
cecho -r -by -hl -ul hello -d -B -c -br -re world -d -B -g -bl !
More examples in help file triggered with this command
cecho -h
That colorful help page is generated by cecho
.
Once you have sourced cecho
, CECHO_IS_IMPORTED=1
will be defined.
That meams you can check this var CECHO_IS_IMPORTED
to confirm if in a no_cecho env or not:
Exp: Sence 2
When you use cecho
but want it inactive temply, set CECHO_IS_INACTIVE=1
before calling cecho
.
Note: color and action can be disable by CECHO_IS_INACTIVE
, but we keep return
, blank
and tab
active, as you wish.
Needn't do any change, cecho
can self-adapting this: colorful for stdout, non-colorful for file/pipe.
Unfortunately, you have to write your script like this:
if [ -z "$CECHO_IS_IMPORTED" ]
then
echo hello world
else
cecho -r -bg -hl hello -B world
fi
Or shortly:
[ -z "$CECHO_IS_IMPORTED" ] && echo "hello world" || cecho -r -bg -hl hello -B world
cecho
but I want it disabled templyCECHO_IS_INACTIVE=1
cecho -r -bg -hl hello world # <-- now cecho is inactive
CECHO_IS_INACTIVE=
cecho -r -bg -hl hello world # <-- now cecho is active
-d
( same as -done
) will turn off all settings ( fg, bg and action ), Thus, in single command, you have to set flags again to make it work well once there are other strings after -d
.cecho "!"
. It's due to echo
... use cecho '!'
or cecho !
instead.-d
at the begin/end of commands, cecho
do it automatically.Another C version project is coprintf.
Thanks to https://github.com/jonhiggs/cecho, when I completed cecho
script and try uploading it to github I found this -- with same name and almost same functions ... and then, I got the way to build table in README.md from there.
879 阅读
735 阅读
Bash Shell定义文字颜色有三个参数:Style,Frontground和Background,每个参数有7个值,意义如下:
其中,+30表示前景色,+40表示背景色
这里提供一段代码可以打印颜色表: