shell脚本中echo颜色设置


问题:跑shell脚本时,想增加高亮输出

第一种设置方法:

颜色字号表

显示方式意义
0 终端默认设置
1 高亮显示
4 使用下划线
5 闪烁
7 反白显示
8 不可见
前景色背景色颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黃色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色


vim echo.sh

#!/bin/bash
# 定义颜色动作, 把echo -e也定义到变量中
RED="echo -en \\E[4;31m"
GREEN="echo -en \\E[7;32m"
YELLOW="echo -en \\E[5;33m"
RESET="echo -en \\E[0;39m"

# 使用时直接调用颜色动作即可
$RED && echo 红色 && $RESET
$GREEN && echo 绿色 && $RESET
$YELLOW && echo 黄色 && $RESET
$RESET && echo 重置 && $RESET

注释:
  1.  需要增加-n选项,这样引用时不会出现换行的问题。
  2. \\本质是\,在双引号中反斜线符号一定要写成\\。
  3. 引用变量要放到其他语句前面,并使用&&连接。
效果图:

第二种设置方法:

put 命令会利用 terminfo 数据库中的信息,来控制和更改我们的终端,比如控制光标、更改文本属性、控制屏幕,以及为文本涂色。

其中,为文本涂色的方法是:

  • tput setab:用于设置背景色;
  • tput setaf:用于设置前景色。

                                                                                                                                                                                颜色字号定义

数值 0 1 2 3 4 5 6 7
颜色 黑色 红色 绿色 黄色 蓝色 洋红色 黄色 白色


vim echo1.sh

#/bin/bash
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
RESET=$(tput sgr0)
echo "${RED}red ${RESET}"
echo "${GREEN}green ${RESET}"

效果图:

相关