追求卓越,成功就会在不经意间追上你
全部博文(112)
分类: LINUX
2011-05-07 23:09:03
echo是用来在屏幕上显示文本或变量值的一个命令。
语法如下:
echo [options] [string,variables....]
其中options包括:
-n 显示不换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
好啦,对echo有一定的了解后,我们来看看怎样才能让你的echo更出彩!
怎样才能在控制台上显示出多彩的信息呢?我们知道,Linux系统中所有的东西都被看成文件,我们使用的控制台只是其中一个特殊的文件罢了!你可以通过在控制台输入特殊的字符序列来控制控制台的各个方面,譬如屏幕的颜色,字体的粗细,清除屏幕,显示文本框等等。这些特殊的字符呢,就叫做转义字符码。我们linux系统的控制台基于DEC VT100串行终端的,它支持ANSI转义字符码。
下面,有例有真相,嘿嘿
e.g. 1:打印 Hello World
一般情况下是这样的:
[fedora@novice ~]$ echo "Hello World"
Hello World
这时,如果我们想要一点点颜色呢?要怎么办?可以这样:
[fedora@novice ~]$ echo -e "\033[34m Hello Colourful World"
Hello Colourful World
[fedora@novice ~]$
通过上面的命令我们不仅输出了蓝色的Hello Colourful World,还把控制台的文本显示改成了蓝色!现在来解释下上面语句的执行步骤:
1.\033,转义字符,它通知echo要采取行动啦。\033是ANSI转义序列的开始,它指示命令进入escape mode。
2.[34m,它告诉echo该做什么,在这里是把前景设置为蓝色。"["把命令带入CSI(command sepuence introduction)mode;34,m只是参数。
3.打印后面文本或字符串
下表列出了一些重要或常用的与转义码/行为相关的字符
Charactor or letter |
Use in CSI |
Examples |
h |
设置为ANSI模式 |
echo -e "\033[h" |
l |
清除ANSI模式 |
echo -e "\033[l" |
m |
用于设置字符或文本的颜色,粗细等 |
echo -e "\033[m" |
q |
打开或关闭数字键盘锁,大小写锁,指示灯等 |
echo -e "\033[2q" |
s |
存储光标当前的位置及属性 |
echo -e "\033[7s" |
u |
恢复光标位置及属性 |
echo -e "\033[8u" |
下表列出了一些与m相关的参数:
Parameter |
Meaning |
Example |
0 |
设为默认模式,黒色背景,白色前景等等 |
|
1 |
设置为粗体显示 |
echo -e "I am \033[1m bold \033[0m Person" #把bold设置为粗体,之后便立即取消以免后面的字符全变成粗体。 |
2 |
设置明暗程度 |
echo -e "\033[1m BOLD \033[2mDIM \033[0m" |
5 |
闪烁效果 |
echo -e "\033[5m Flash! \033[0m" |
7 |
反转默认显示效果 |
echo -e "\033[7m Linux OS! Best OS!! \033[0m" |
11 |
用图形字符显示特殊的控制字符 |
按alt-178 然后 echo -e “\033[11m” 你一定会发现什么的,嘿嘿 |
25 |
删除,禁用闪烁效果 |
|
27 |
删除,禁用反转效果 |
|
30-37 |
前景颜色 31-RED 32-GREEN 35-BLUE 其它的就自己慢慢去试啦 |
echo -e "\033[31m I am in Red" |
40-47 |
背景颜色 这个就自己慢慢试喔 |
echo -e "\033[44m Wow!!!" |
下表是与q有关的参数
Parameters |
Meaning |
0 |
关闭键盘上所有的指示灯 |
1 |
只打开滚动锁,其它的关闭 |
2 |
打开数字键盘锁,其它关闭 |
3 |
打开大写锁定,其它关闭 |
好啦,就到这里啦!