Linux--用shell脚本写一个彩色进度条

进度条分析

具体分析请看我以前写的博客:
http://blog.csdn.net/sayhello_world/article/details/55296656

和上一个进度条不一样的地方

  1. C语言中的printf与shell中的printf
    shell里的printf,它代表的是一条指令,指令的运行时交互式bash fork子进程,子bash执行指令,当一条指令执行完也就意味着进程结束。
    进程结束会刷新缓冲区,所以这里就算不用\n也是会输出,这里的printf是站在进程外部的角度去看的。
    反观C语言中的printf,它是站在进程内部去看的。所以C语言中的printf涉及全缓冲,行缓冲。

  2. shell中printf的彩色方案
    颜色是通过添加专用序列来选择的 – 夹在 “\e[“和 “m”之间的数字。如果指定一个以上的数字,则用分号将它们分开。

echo -e "\e[31;42m"

第一个数字(31)为前景颜色(红色);第二个数字为(42)背景颜色(绿色)

echo -e "\e[0m"echo -e "\033[0m"

使用”\e[0m”序列将颜色重新设置为正常值

颜色分类:

\e[30m – \e[37m 设置前景色(字体颜色)
echo -e “\e[30m” 灰色
echo -e “\e[31m” 红色
echo -e “\e[32m” 绿色
echo -e “\e[33m” 黄色
echo -e “\e[34m” 蓝色
echo -e “\e[35m” 紫色
echo -e “\e[36m” 淡蓝色
echo -e “\e[37m” 白色

\e[40m – \e[47m 设置背景色
echo -e “\e[40m” 灰色
echo -e “\e[41m” 红色
echo -e “\e[42m” 绿色
echo -e “\e[43m” 黄色
echo -e “\e[44m” 蓝色
echo -e “\e[45m” 紫色
echo -e “\e[46m” 淡蓝色
echo -e “\e[47m” 白色

其他的一些参数

\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \033[37m 设置前景色
\033[40m – \033[47m 设置背景色
\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 显示光标

代码

Linux--用shell脚本写一个彩色进度条_第1张图片
这里写图片描述

你可能感兴趣的:(Linux/操作系统,shell,进度条,Linux,printf,c语言)