shell中echo基础及高级用法详解-渐入佳境

--作者:飞翔的小胖猪

--创建时间:2021年2月19日

1.1 基础用法

echo命令用来输出文本,在shell脚本中用来输出提示信息用的比较多。

单引号:原样输出所有的内容,不用转义就能输出特殊字符。需要调用变量时不要使用单引号

如使用echo修改操作系统密码时一定要用单引号

[root@135 ~]# echo '\\'
#修改root密码,修改密码时一定要用单引号,避免特殊字符造成的密码不一致。
[root@135 ~]# echo 'yinsi' | passwd --stdin root 

双引号:双引号保留输出文本中特殊字符的含义,如需要输出特殊字符本身需要使用转义符。

[root@135 ~]# echo "\\"

常用参数:

[root@135 echo_study]# echo -[e|E|n]
-n   不换行输出
-e   启用反斜杠转义的解释
-E   禁用反斜杠转义的解释(默认)

常用转义符:使用转义符的时候需要跟上-e选项。

\b   转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符;
\c   不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n;
\n   换行;
\f   换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;
\v   与\f相同;
\t   转以后表示插入tab,即制表符,已经在上面举过例子;
\r   光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;
\\   表示插入”\”本身;
[root@135 echo_study]# aa="test11"
[root@135 echo_study]# bb="test22"
[root@135 echo_study]# echo -e '$aa\t$bb\n$aa $bb'
[root@135 echo_study]# echo -e "$aa\t$bb\n$aa $bb"

1.2 高级用法

使用高级用法时必须加上\033[或\e[,确认不使用特殊属性后及时清除设置的属性,切记!切记!切记!

1.2.1 属性

\033[0m      关闭所有属性
\033[1m      设置高亮度
\033[4m      下划线
\033[5m      闪烁
\033[7m      反显
\033[8m      消隐
\033[nA      光标上移n行
\033[nB      光标下移n行
\033[nC      光标右移n行
\033[nD      光标左移n行
\033[y;xH    设置光标位置,y表示行数,x表示从第几个字符开始
\033[2J      清屏
\033[K       清除从光标到行尾的内容
\033[s       保存光标位置
\033[u       恢复光标位置
\033[?25l    隐藏光标
\033[?25h    显示光标

例子:

为test添加下划线,\033[0m表示取消下划线,如果不使用\033[0m取消特殊属性,该终端输出的所有信息都会带下划线。

#只有test有下划线
[root@135 echo_study]# echo -e  "\033[4mtest\033[0m"    
​
#test后所有输出都有下划线
[root@135 echo_study]# echo -e  "\033[4mtest"  

设置字符显示在特定的位置,先使用\033[2J清空屏幕,然后设置从第10行第5个字符开始输出test字符。

[root@135 ~]# echo -e "\033[2J\033[10;5Htest"

1.2.2 颜色

echo可以为字体和背景设置颜色。字体和背景均提供有8种颜色。

字体颜色和背景颜色的区分是字体开头数字为3,背景开头数字为4

字体颜色

\033[30m   (黑色)
\033[31m   (红色)
\033[32m   (绿色)
\033[33m   (黄色)
\033[34m   (蓝色)
\033[35m   (紫红色)
\033[36m   (青色)
\033[37m   (白色)

背景颜色

\033[40m   (黑色)
\033[41m   (红色)
\033[42m   (绿色)
\033[43m   (黄色)
\033[44m   (蓝色)
\033[45m   (紫红色)
\033[46m   (青色)
\033[47m   (白色)

例子:

#设置test字体颜色为红色、背景颜色为青色。
[root@135 ~]# echo -e "\033[31mtest\033[46m"
​
#取消当前终端设置的所有的特殊属性,回到默认状态。
[root@135 ~]# echo -e "\033[0m"

posted @ 2021-02-19 17:19  飞翔的小胖猪  阅读(1299)  评论(0编辑  收藏  举报