linux 转义序列:序列 ESC [ m 设置显示属性
它以ESC[开始, 以m结束, 在他们中间设置显示属性,如字体前景颜色和背景颜色。ESC的ASCII码表十进制27,八进制33.
在linux shell可以如此表示E或者033
\E[设置值m
或者
\033[设置值m
0 所有属性重设为默认值
1 设置边框
2 设置亮度减半(用一种颜色模拟另一种颜色)
4 设置底纹(用一种颜色模拟另一种颜色)(用于模拟的颜色由using ESC ] ...设置)
5 设置闪烁
7 设置反转视频(reverse video)
10 重设选定映像,显示控制标记,反转元素标记.
11 选择空映像,设置显示控制标记,重设反转标记.
12 选择空映像,设置显示控制标记,重设反转标记.(在完成映像表转换之前反转标记引起每一字节的高位反转.)
21 设置正常亮度(和 ECMA-48 不兼容)
22 设置正常亮度
24 关闭下划线
25 不闪烁
27 反转视频关闭
30 黑色背景
31 红色前景
32 绿色前景
33 棕色前景
34 蓝色前景
35 品红前景
36 孔雀蓝前景
37 白色前景
38 打开下划线,设置默认前景色
39 关闭下划线,设置默认前景色
40 黑色背景
41 红色背景
42 绿色背景
43 棕色背景
44 蓝色背景
45 品红背景
46 孔雀蓝背景
47 白色背景
49 设置默认背景色
例子:
yellow='\E[33;49m'
blue='\E[34;49m'
magenta='\E[35;49m'
cyan='\E[36;49m'
white='\E[37;49m'
red='\E[31;49m'
green='\E[32;49m'
black='\E[30;49m'
reset='\E[0m'
cecho ()
{
local default_msg="No message passed."
message=${1:-$default_msg} # Defaults to default message.
color=${2:-$black} # Defaults to black, if not specified.
echo -n -e "$color"
echo "$message"
echo -n -e $reset
return
}
用法:cecho "echo message" $color
linux中括号之花括号:${var:-string},${var:+string},${var:=string},${var:?string}
A,${var:-string}
若变量var为空,则用在命令行中用string来替换${var:-string},否则变量var不为空时,则用变量var的值来替换${var:-string}
B,${var:=string}和${var:=string}
对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的同时,把string赋给变量var
C,${var:+string}
${var:+string}的替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量 var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的)
D,${var:?string}
替换规则为:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。
很不错的linux shell 括号的用法:
http://my.oschina.net/xiangxw/blog/11407