echo命令详解
Posted 世界美好與你環環相扣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echo命令详解相关的知识,希望对你有一定的参考价值。
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”之前的同等长度的字符。
6.\\”经过转义以后,表示”\\”,示例如下
通过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 清除从光标到行尾的内容
以上是关于echo命令详解的主要内容,如果未能解决你的问题,请参考以下文章