颜色码

  属性
0 无属性
1 高亮
4 下划线
5 闪烁
7 反显
8 消隐
9 删除线
颜色 彩色文本 彩色背景
黑色 30 40
红色 31 41
绿色 32 42
黄色 33 43
蓝色 34 44
紫色 35 45
青色 36 46
白色 37 47

设置颜色

echo -e "\e[1;31m This is red text \e[0m"

\e[1;31m将输出颜色设为红色,\e[0m将颜色重新置回

\033[31m

函数

#!/bin/env bash

declare -A fore
declare -A back

fore=([reset]=0 [black]=30 [red]=31 [green]=32 [yellow]=33 [blue]=35 [purple]=35 [cyan]=36 [white]=37)

back=(
  [reset]=0
  [black]=40
  [red]=41
  [green]=42
  [yellow]=43
  [blue]=45
  [purple]=45
  [cyan]=46
  [white]=47
)

function show(){
  # $1:color; $2: mesg
  printf "\033[$1m$2\033[0m\n"
}

show ${back[red]} hello