NoteDeep
echo命令是Linux中最基本的命令,也是最常用的命令,特别是在写shell脚本的时候,会经常用到,虽然echo命令非常基础,但是功能还算丰富,以下是对echo命令的总结,方便记忆与回顾。
echo命令的基本用法,很简单,就是echo命令后面跟上要输出的文本,如下
除了基本用法,还可以配合一些选项使用
echo -n 表示不换行输出
可以看到,如果不添加-n选项,文本输出以后,指定换行了,而添加了-n选项后,文本直接连着命令提示符输出了,并没有换行。
当使用echo输出命令替换后的内容时,命令执行结果的格式可能会发生变化,比如想要输出ifconfig命令执行结果,可用如下命令
但是发现,这样输出的文本格式发生了变化,这是因为我们直接执行ifconfig命令时,ifconfig返回的结果是多行的,当我们使用echo输出时,格式发生了变化,如果想要按照命令执行后的原格式输出命令替换后的结果,可以使用如下方法,此方法在写脚本的时候可能会用到。
另外,echo -e 输出转义字符,比如常用的转义字符 "\t",表示制表符,作用相当于键盘上的tab键,如下图所示
上图示例中,已经讲 "\t"转义过的制表符输出到屏幕上,所以,只要能够记住这些转义字符,就可以在echo命令中输出它们,常用的转义字符如下。要记住!!!
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n
\n 换行
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾
\v 与\f 相同
\t 转义后表示插入TAB,即制表符
\r 光标移至行首,但不换行 表示使用"\r"后面的字符覆盖"\r"之前同等长度的字符。
\\ 表示出入 "\"本身

使用echo的 -e 选项,除了能够输入转义字符,还能够在命令行中输入彩色的字符,或者带有彩色背景的字符。如下图所示
从上图可以看出,如果要想输出红色字符,至少需要两部分,\033[31m和\033[0m 这些代码有一个专业名词,叫做"ANSI控制码"。简单理解就是当 echo -e 遇到\033[31m时,就认为自己要输出红色字符,\033[31m就是一个信号,它告诉echo -e 需要开始输出红色字符了,\033[0m也是一种信号,它告诉echo命令,红色字符已经不能输出了,在输出的字符就是黑白字符,也就是结束信号。
\033[31m------31代表红色,其他颜色对应的数字总结如下:
30:黑色
31:红色
32:绿色
33:黄色
34:蓝色
35:紫色
36:浅蓝色
37:灰色
除了能够时用echo命令输出彩色字符,还可以为彩色字符添加背景颜色,如下给输出的字符添加黄色背景。
可以看出,唯一不同的地方就是带有黄色背景的命令中,多出了"43" 其他部分的命令都一样。
所以背景颜色对应的数字编号如下:
40:黑色
41:红色
42:绿色
43:黄色
44:蓝色
45:紫色
46:浅蓝色
47:灰色

之前已经说过,"\033[31m" "\033[0m"这些代码都属于ANSI控制码,ANSI控制码中不仅有控制颜色的控制码,还有一些提供其他功能的控制码,总结如下:
\033[0m---关闭所有属性,也就是说此控制码前面的控制码将会失效,此控制码中的0可以省略
\033[1m---设置高亮度
\033[4m---下划线
\033[5m---闪烁
\033[7m---反显,撞色显示
\033[8m---消隐,字符颜色将会与背景颜色相同
\033[30m---\033[37m---设置字符颜色
\033[40m---\033[47m---设置背景颜色
\033[k---清除从光标到行尾的内容



评论列表