Linux终端进度显示

1.常见87%======>形式

/*
 * =====================================================================================
 *
 *       Filename:  progressbar.c
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  2012年03月22日 08时56分50秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  KEKEZHOU (), yuke1000@gmail.com
 *   Organization:  
 *
 * =====================================================================================
 */
#include <stdlib.h>
#include <stdio.h>
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  main
 *  Description:  The entrance of the world  
 * =====================================================================================
*/
 int main(int argc,char* argv[]){
    int i;
    char x[300];
    memset(x,0,300);
    for(i=0;i<101;i++){
		if(i == 100)
		{
		sprintf(&x[0],"%3d",i);
        x[3]='%';
        x[4+i]='=';

		printf("\r%s=",x);
        fflush(stdout);
	}else{
		sprintf(&x[0],"%2d",i);
        x[2]='%';
        x[3+i]='=';

		printf("\r%s>",x);
        fflush(stdout);
		sleep(1);
	}
	}
    printf("\n");

} 

2.旋转的\|/-形式

/*
 * =====================================================================================
 *
 *       Filename:  cros.c
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  2012年03月22日 17时24分19秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  KEKEZHOU (), zyk@lreis.ac.cn
 *   Organization:  
 *
 * =====================================================================================
 */
#include <stdlib.h>
#include <stdio.h>
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  main
 *  Description:  The entrance of the world  
 * =====================================================================================
 */
int main ( int argc, char *argv[] ) {

	printf("hello,vimer\n");
	char cursor[4] = {'|','\\','-','/'};
	int i;
	for(i = 0; i < 100; ++i)
	{
		int k = i%4;

		switch (k) 
		{
			case 0:
				printf("\r%c",cursor[0]);
				sleep(1);
				fflush(stdout);
				break;

			case 1: 
				printf("\r%c",cursor[1]);
				sleep(1);
				fflush(stdout);
				break;

			case 2 :
				printf("\r%c",cursor[2]);
				sleep(1);

				fflush(stdout);
				break;

			case 3 :
				printf("\r%c",cursor[3]);
				sleep(1);
				fflush(stdout);
				break;
		}
	}
	return 0;
}				/* ----------  end of function main  ---------- */

### 如何在终端显示软件包或程序安装进度 对于不同的Linux发行版以及使用的不同工具,显示安装进度的方法有所不同。 #### 使用 `yum` 显示安装进度 当使用 `yum` 安装软件时,默认情况下会有一个简单的进度指示器来展示下载过程中的进展。如果希望获得更详细的输出,可以在命令行中加入 `-y` 参数自动应答 yes 来避免交互,并且确保环境变量 `YUM_DNF_PROGRESSBAR=on` 已设置以启用进度条功能[^1]。 ```bash export YUM_DNF_PROGRESSBAR=on yum install package_name -y ``` #### 使用 `apt-get` 或者 `apt` (Debian/Ubuntu) 对于基于 Debian 的系统如 Ubuntu,在执行 apt-get update 或 upgrade 操作期间会有默认的进度提示;而对于具体的包安装操作,则可通过如下方式增强用户体验: ```bash sudo apt-get install --show-progress package_name ``` 此选项会在安装过程中提供可视化的进度条[^2]。 #### 自定义进度条实现 为了创建自定义的应用级进度条效果,可以利用 shell 脚本配合某些特定函数库完成这一目的。下面给出一段简单例子说明如何模拟一个基本的进度条行为: ```bash #!/bin/bash # Simple progress bar simulation script. for i in $(seq 0 10); do echo -ne '#####'$i'%'"\r" sleep 1 # Simulate work being done by sleeping for one second per iteration. done echo -e '\nDone!' ``` 这段脚本每秒更新一次控制台上的百分比数值直到达到终点并打印结束消息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值