Linux 颜色设置以及进度条的实现
格式如下:
\033[字体颜色;字背景颜色m字符串\033[0m
或者
\e[字体颜色;字背景颜色m字符串\e[0m
后面进度条中例子:
printf "\e[31m[%-100s]\e[1;0m\e[32m[%c]\e[1;0m\e[35m[%d%%]\e[1;0m\r" $str ${label[index]} $i
\e[31m //红色字体,这里没有设置背景色,若要设 \e[31;40m 黑底红字 m放在最后作为结束 多个颜色之间用分号 ; 隔开
[%-100s] //100个字符串左对齐 对应后面变量 $str
\e[1;0m // 1表示颜色高亮 (后面有) ,0表示关闭前面设置的颜色属性,不然后面一直保持此设置
[%d%%] //后面两个百分号是为了打印出一个百分号
\r //光标回到左边,确保进度条从左开始并回到左边
其他不再解释
颜色 字体颜色 背景颜色
黑色 30 40
红色 31 41
绿色 32 42
黄色 33 43
蓝色 34 44
紫红色 35 45
青蓝色 36 46
白色 37 47
输出特效格式控制:
\033[30m -- \033[37m 设置前景色即字体颜色
\033[40m -- \033[47m 设置背景色
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
光标位置等的格式控制:
\033[nA 光标上移n行
\03[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\33[?25h 显示光标
进度条
#! /usr/bin/env bash
i=0
str=""
label=('|' '/' '-' '\\')
index=0
while [ $i -le 100 ]
do
let index=i%4
printf "\e[31m[%-100s]\e[1;0m\e[32m[%c]\e[1;0m\e[35m[%d%%]\e[1;0m\r" $str ${label[index]} $i
let i++
str+="#"
sleep 0.2
done
echo
效果
如果还明白的话,还请点赞支持一下!