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 运行效果