linux shell之控制台打印各种颜色字体和背景的实现方法
1 问题
控制台打印各种颜色字体和背景
字体颜色
- #30:黑
- #31:红
- #32:绿
- #33:黄
- #34:蓝色
- #35:紫色
- #36:深绿
- #37:白色
背景颜色
- #40:黑
- #41:深红
- #42:绿
- #43:黄色
- #44:蓝色
- #45:紫色
- #46:深绿
- #47:白色
-
控制码会改变shell的输出设置最好不要用
控制码
这里常用有 设置高亮度/下划线/闪烁/关闭所有属性\e[0m 关闭所有属性
\e[01m 设置高亮度
\e[04m 下划线
\e[05m 闪烁
\e[07m 反显
\e[08m 消隐
\e[30m – \e[37m 设置前景色
\e[40m – \e[47m 设置背景色
\e[nA 光标上移n行————————————————
1 |
echo -e "\e[43;35m chenyu\e[0m hello word"
|
比如上面的命令,43是背景颜色,35是字体颜色, \e[0m 是还原本色
2 代码实现
这里写的是color.sh
文件如下:
#!/bin/bash for i in {30..37} do echo -e "\e[1;${i}m chenyu\e[0m hello word" done echo "--------------" for((i=47; i>=40; --i)) do echo -e "\e[$i;$[$i - 10]m chenyu \e[0m abcd\e[1;$[$i - 10]m chenyu\e[0m hello word" done #两个字符串相加 chenyu="chen"; chen=${chenyu}"yu" echo $chen #数字相加10 a=10; b=$(($c+10)); echo $b; #数字相加10 c=20; d=$[$c+10]; echo $d;
3 运行效果