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 显示光标
拓展: