Shell 终端字符颜色

Shell 终端字符颜色

终端字符的颜色是通过转义序列控制的,转义序列以 ESC 字符开头,ESC 字符的 ASCII 码是 27,用八进制表示是 33,可以用 \033 表示 ESC 字符,也可以用 \e 表示 ESC 字符。

一般格式

转义序列以 \033[ 开头,后面跟随由分号分隔的多个控制码,最后以字符 m 结尾

\033[控制码;控制码;控制码;...m

控制码

并非所有 Shell 都支持这些控制码。

0        复位
1        增加亮度(加粗)
2        降低亮度
3        斜体
4        下划线
5        闪烁
6        闪烁
7        反色
8        隐藏文字
9        删除线
21       双下划线
30 - 37  前景色(黑红绿黄蓝紫青灰)
40 - 47  背景色(黑红绿黄蓝紫青灰)
53       上划线
90 - 97  前景色(亮:黑红绿黄蓝紫青灰)
100-107  背景色(亮:黑红绿黄蓝紫青灰)

示例

#!/usr/bin/bash

clear

for i in {0..255}
do
    echo -e "\033[0;${i}mHello_$i"
done

特殊格式

\033[特殊控制码

特殊控制码

3A       光标上移 3 行
3B       光标下移 3 行
3C       光标右移 3 列
3D       光标左移 3 列
3G       光标移到第 3 列
3H       光标移到第 3 行
3I       光标移到第 3 个制表符位置
y;xH     设置光标位置
2J       清屏
K        清除从光标到行尾的内容
s        保存光标位置
u        恢复光标位置
?25l     隐藏光标
?25h     显示光标

RGB 格式

前景色

\033[38;2;;绿;蓝m

背景色

\033[48;2;;绿;蓝m

示例

#!/usr/bin/bash

# RGB 前景色
for i in {0..255..85}; do
    for j in {0..255..85}; do
        for k in {0..255..85}; do
            echo -en "\033[38;2;${i};${j};${k}mHello_[$i,$j,$k]   "
        done
    done
done
echo -e "\033[0m"

# RGB 背景色
for i in {0..255..85}; do
    for j in {0..255..85}; do
        for k in {0..255..85}; do
            echo -en "\033[48;2;${i};${j};${k}mHello_[$i,$j,$k]   "
        done
    done
done
echo -e "\033[0m"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值