echo输出命令,顾名思义就是输出字符提示的意思
命令格式如下:
echo 【选项】 【输出内容】
选项:-e:支持反斜线控制的字符转换,前面有斜线的字符将作为转义字符
常用的转义字符:
\b 转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符,具体效果参考下方示例。
\c 不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n,具体效果参考下方示例。
\n 换行,效果看示例。
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;
\v 与\f相同;
\t 转以后表示插入tab,即制表符,已经在上面举过例子;
\r 光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;
\ 表示插入”\”本身;
(1)echo命令的使用,字符串加双引号和不加双引号效果一样
(2)echo字符串中加入转义字符的运用,选项要加上-e
(3)当使用echo输出命令替换后的内容时,命令执行结果的格式可能会发生变化,比如,如果我们想要输出ifconfig命令执行后的结果,我们可能会使用如下命令,
但是我们发现,这样输出的文本的格式发生了变化,这样可能不是我们想要的,因为当我们直接执行ifconfig命令时,ifconfig返回的结果是多行的,可是当我们使用echo输出的时候,格式发生了变化,如果想要按照命令执行后的原格式输出命令替换后的结果,可以使用如下方法,如下方法在写脚本的时候可能会用到。
(5)常用的转义字符”\t”, 转义字符”\t”表示制表符,作用相当于我们键盘上的tab键。
使用echo命令输出上述转义字符的示例如下:
1.使用echo命令输出”\b”转义字符,在”\b”后面存在字符的前提下,”\b”表示删除前一个字符,”\b\b”表示删除前两个字符。
可以看到,上例中,在”\b”后面不存在任何字符时,”\b”并没有转义为”退格键”,当”\b”后面存在字符时,一个”\b”就相当于按一次backspace键。
2.我们也可以使用\c转义符,表示不换行输出,但是当”\c”后面仍然存在字符时,”\c”后面的字符将不会被输出,如果”\c”后面不存在任何字符时,效果与使用”echo -n”相同,示例如下。
3.“\n”转义后表示换行,下例中,被输出的字符从”\n”处开始另起一行。
4.“\f”转移符表示换行,但是换行后的新行的开头位置连接着上一行的行尾,“\v”转义符与”\f”转义符的作用相同。
5.\r”转义符表示使用”\r”后面的字符覆盖”\r”之前的同等长度的字符。
通过echo命令,输出彩色的文本
使用echo命令的-e选项,除了能够输出转义字符,还能够在命令行中输出彩色的字符,或者带有彩色背景的字符。
033[31m 和 \033[0m ,这些代码有一个专业名词,叫做”ANSI控制码
当echo -e遇到\033[31m的时候,就认为自己要输出红色字符了,\033[31m就是一个信号,它告诉echo -e,需要开始输出红色字符了, \033[0m也是一种信号,它告诉echo 命令,红色字符已经不能输出了,再输出的字符应该是黑白字符了,不能是彩色的了。
那么,如果我们想要输出绿色字符,该怎么写呢,示例如下
也就是说,我们只要改变对应位置的数字,就能改变输出字符的颜色,所以,我们将能够输出的颜色对应的数字总结如下:
40:黑色
41:红色
42:绿色
43:黄色
44:蓝色
45:紫色
46:浅蓝色
47:灰色
我们可以同时设定字符的颜色与背景的颜色,怎样搭配随你喜欢。
们在之前已经说过, “\033[31m” “\033[m”这些代码都属于 ansi 控制码。
ansi控制码中不仅有控制颜色的控制码,还有一些提供其他功能的控制码,我们来总结一下。
常用ANSI控制码总结如下:
\033[0m 关闭所有属性 ,也就是说此控制码前面的控制码将会失效,此控制码中的0可以省略。
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显 ,撞色显示,显示为白底黑字,或者显示为黑底白字
\033[8m 消隐 ,字符颜色将会与背景颜色相同
\033[30m — \33[37m 设置字符颜色
\033[40m — \33[47m 设置背景色
\033[K 清除从光标到行尾的内容