跳转至

echo

语法

​ echo [选项] [输出内容]

选项: -e: 支持反斜线控制的字符转换

​ -n : 不换行输出

\\  输出\本身 

\a 输出警告音 

\007输出警告音,警告音可以和sleep配合

\b 退格键,也就是向左删除键 

\c 取消输出行末的换行符。和“-n”选项一致

\e ESCAPE键  就是esc键子

\033 ESCAPE键

\f 换页符 

\n 换行符 

\r 回车键 

\t 制表符,也就是Tab键 

\v 垂直制表符 

\0nnn 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 

\xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

\e[1;    开启颜色

\e[0m   关闭颜色

echo 的颜色输出

格式如下:

​ echo -e "\033[字背景颜色;文字颜色m字符串\033[0m",需要使用参数-e

  • 选项可以叠加,中间用分号隔开

  • m一定在选项的最后,比如、033[41;37;5m设置红底白字闪烁

  • 字符串前后可以没有空格,如果有的话,输出也是同样有空格

  • 字符串结束一定要加关闭所有属性:033[0m或者\e[0m,否则下面的输入都会变色

  • 可以嵌套,类似xml嵌套,网页的书写规则,开头可以加各种属性,结束必须清除规则

  • echo后要输出的字符串,尽量要加引号,比如echo -e "\033[31;47;5m kjdfasdf \033[0m",白底红字闪烁

本质上是显示ansi的转义序列,ANSI转义序列 - 维基百科,自由的百科全书 (wikipedia.org) 转义字符 - 维基百科,自由的百科全书 (wikipedia.org)

下面看几个例子:

#30m=黑色, 31m=红色, 32m=绿色, 33m=黄色
#34m=蓝色, 35m=洋红, 36m=青色, 37m=白色

[root@localhost ~]# echo -e "\e[1;31m 1234 \e[0m"
输出红色的1234
#尽量带""号

红底白粗体字   
echo -e "\033[1;41;37m 红底白字 \033[0m"
绿底白粗体字   
echo -e "\033[1;42;37m 绿底白字 \033[0m"


echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

控制选项说明 :

\033可以换成\e
\033[0m,\e[0m关闭所有属性
\033[1m 设置高亮度,字体是粗体
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \33[37m 设置前景色
\033[40m -- \33[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

拓展:

技术|如何改变你的终端颜色 (linux.cn)