shell脚本中echo命令打印彩色输出需要使用参数-e,格式如下:
echo -e "\e[字背景颜色;文字颜色m字符串\e[0m"
例如:
echo -e "\e[41;36m Hello world.\e[0m"
代码输出以41(红)为背景色和36(天蓝色)为字体颜色的Hello world.
如果不想设置背景颜色,使用如下格式即可
echo -e "\e[36m Hello world.\e[0m"
字体颜色(30 -- 37)如下:
echo -e "\e[30m 黑色字 \e[0m"
echo -e "\e[31m 红色字 \e[0m"
echo -e "\e[32m 绿色字 \e[0m"
echo -e "\e[33m 黄色字 \e[0m"
echo -e "\e[34m 蓝色字 \e[0m"
echo -e "\e[35m 紫色字 \e[0m"
echo -e "\e[36m 天蓝字 \e[0m"
背景颜色(40 -- 47)如下:
echo -e "\e[40;37m 黑底白字 \e[0m"
echo -e "\e[41;37m 红底白字 \e[0m"
echo -e "\e[42;37m 绿底白字 \e[0m"
echo -e "\e[43;37m 黄底白字 \e[0m"
echo -e "\e[44;37m 蓝底白字 \e[0m"
echo -e "\e[45;37m 紫底白字 \e[0m"
echo -e "\e[46;37m 天蓝底白字 \e[0m"
echo -e "\e[47;30m 白底黑字 \e[0m"
控制选项如下:
\e[0m 关闭所有属性
\e[1m 设置高亮度
\e[4m 下划线
\e[5m 闪烁
\e[7m 反显
\e[8m 消隐
\e[30m — \e[37m 设置前景色
\e[40m — \e[47m 设置背景色
\e[nA 光标上移n行
\e[nB 光标下移n行
\e[nC 光标右移n行
\e[nD 光标左移n行
\e[y;xH设置光标位置
\e[2J 清屏
\e[K 清除从光标到行尾的内容
\e[s 保存光标位置
\e[u 恢复光标位置
\e[?25l 隐藏光标
\e[?25h 显示光标
如何使用这些控制选项呢,看下面的例子:
echo -e "\e[1;41;36m Hello world.\e[0m"
在背景色之前加上1; 即可,实际效果可以自行实验,仔细观察输出的不同。