linux下进度条和shell写的进度条

【普通进度条】
一.进度条程序

   1)程序代码

  linux下进度条和shell写的进度条_第1张图片

2)makefile

linux下进度条和shell写的进度条_第2张图片

3)结果

4)原理

     通过运用回车而不换行,使后一次的输出结果覆盖前一次的输出结果,输出的信号随时间增长。

二.原理

1)回车和换行

   符号    ASCII码      意义
\n        10        换行NL
\r        13        回车CR

回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed

\r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉

\n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首

代码如下

linux下进度条和shell写的进度条_第3张图片

结果如下:

linux下进度条和shell写的进度条_第4张图片

三.fflush的用法

fllush的概念

当程序遇到sleep或usleep使程序挂起特定时间时,本应该输出的信息存在缓冲区也再等待,这时就需要fflush来清除读写缓冲区,需要立即把输出缓冲区的数据进行物理写入时。

【shell脚本的进度条】

代码如下:

linux下进度条和shell写的进度条_第5张图片

结果:




你可能感兴趣的:(linux编程)