echo用于linux终端的输入字符的标准输出,其输出内容字符串之间以空白字符分隔,并以换行号结束输出。
其语法格式为:
echo [OPTION]... [STRING]...
常用选项包含 -n -e -E -help --version ,其中重要的选项用法如下
echo -n :echo默认会加换行符\r,可以通过echo -n去掉末尾的换行符
echo -e : 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
echo -e 用法实例介绍:(以带颜色输出为例)
[root@node1 ~]# echo -e "\033[44;37;5m Hello World ! \033[0m"
Hello World ! ##显示为背景色蓝色,前景色(字体颜色)为白色,闪烁显示
上述语法格式解释如下:
-e表示打开反斜杠ESC转义,\033[表示引导非常规字符序列,终端转义字符开始其中\033表示退出键ESC的ASCII码,44表示背景色为蓝色,37表示前景色(字体颜色)为白色,5表示字体闪烁,m表示输出属性设置结束, Hello World !表示输出的内容,\033[同样表示字符转义开始,0表示重置输出属性设置,m表示属性设置结束。输出属性设置的数字只与大小有关系,与写的前后位置无关系。
上述内容也可以用以下表达方式替换:
[root@node1 ~]# echo -e "\e[44;37;5m Hello World ! \e[0m"
特殊说明:
前景色(字符颜色)的显示数字+10即为背景色同样颜色;
属性设置标识符m前面需紧挨数字,不能有空格;
上述方法只是临时在终端shell窗口生效,如果shell窗口退出、关闭,则设置失效,如若想永久生效,需要加入到环境变量.bash_profile、.bashrc等即可;
如果使用在shell脚本中,尽量设置颜色变量,例如export ECHO_COL_END="\033[0m" ,export ECHO_COL_01="\033[43;31;1m" ,后面直接调用两个变量显示即可;
备注:
ANSI标准颜色可选彪马如下:
编码 颜色/动作
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
30 设置黑色前景
31 设置红色前景
32 设置绿色前景
33 设置黄色前景
34 设置蓝色前景
35 设置紫色前景
36 设置青色前景
37 设置白色(灰色)前景
38 在缺省的前景颜色上设置下划线
39 在缺省的前景颜色上关闭下划线
40 设置黑色背景
41 设置红色背景
42 设置绿色背景
43 设置黄色背景
44 设置蓝色背景
45 设置紫色背景
46 设置青色背景
47 设置白色(灰色)背景
49 设置缺省黑色背景
其他代码参考如下:
\033[2J 清除屏幕
\033[0q 关闭所有的键盘指示灯
\033[1q 设置"滚动锁定"指示灯(Scroll Lock)
\033[2q 设置"数值锁定"指示灯(Num Lock)
\033[3q 设置"大写锁定"指示灯(Caps Lock)
\033[15:40H 把关闭移动到第15行,40列
\007 发蜂鸣生beep