Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1326042
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: LINUX

2008-01-27 19:07:19

除了可读字符以外,printf还可以打印出八进制、十六进制的不可读字符。我们让printf打印出彩色文本:
# printf '\x1b\x5b1;31;40m\tMerry Christmas\n'
让前景白后景黑:
# printf '\x1b\x5b1;31;40m\tMerry Christmas\n\x1b\x5b0;37;40m'
\x1b\x5b是十六进制码的1B和5B,表明要改变的是图形显示设置,1;31;40m改变文本属性,即前景色与背景色。
还可以把文本的位置与颜色结合起来:
# clear;printf '\x1b\x5b12;25f\x1b\x5b1;31;40m\tMerry Christmas\n\x1b\x5b0;37;40m'
在十六进制码
12;25f中, 12是行数, 25是列数。
这些颜色改动的副作用是它们会在printf之后保留下来,恢复正常值:
# tput sgr0 或者:
# reset
与echo比较一下:
# echo -e '\033[1;32mCheers\033[0m'
echo的颜色表示法遵循ANSI转义序列(ANSI escape sequences)的规则:

转义序列分为键与颜色两种,基本规则: 前面加上\033[ 或者 \e[ (这里的e大写或小写),前者是最早的,带e的是bash后来的版本加的。
颜色表示法:
一、以4开头的背景色;以3开头的前景色m
二、或者不要背景色:
0;前景色m
1;前景色m
0和1这两种有略微的差别。

口诀:0黑 1红 2绿 3棕 4蓝 5紫 6青 7灰
阅读(2678) | 评论(0) | 转发(0) |
0

上一篇:ISO文件的完整性检查

下一篇:使用crontab

给主人留下些什么吧!~~