用法格式

  1. echo -e "\e[1;31;42m $text \e[0m"

编码表

前景色 背景色 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

在XShell上测试的效果

编码 效果
1 高亮
2 没变化,在原生TTY上会变灰
3 斜体
4 下划线
5 闪烁
6 没变化
7 颜色用作背景色,前景色变为黑色,在原生TTY上也生效
8 文字隐藏
9 删除线

改变字符串颜色

#!/bin/bash
function effect_str() {
    str=$1
    shift
    effect_params=$(echo $@ | sed 's/\ /;/g')
    result="\e[${effect_params}m${str}\e[0m"
}
effect_str $@
echo -e $result

修改命令提示符的颜色

# 使 ~/.bashrc 加载 ~/.ps1_color
cat >> ~/.bashrc << EOF_import_ps1_color
if [ -f ~/.ps1_color ]; then
    source ~/.ps1_color
fi
EOF_import_ps1_color
# 设定 ~/.ps1_color 的内容。根据用户是否为 root,\\$ 是会变化的
cat > ~/.ps1_color << 'EOF_PS1'
user_color='\e[34m'
host_color='\e[34m'
workdir_color='\e[34m'
init_color='\e[0m'
PS1="\n${user_color}\u${init_color}@${host_color}\h${init_color} ${workdir_color}\w${init_color} \\$ \n"
EOF_PS1
source ~/.bashrc