LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1354|回复: 3

用字符构成的进度条是怎样实现的?

[复制链接]
发表于 2007-9-26 16:14:14 | 显示全部楼层 |阅读模式
就是Linux下常见的这种   35%100 ========>   进度条,大家知道是怎样实现的吗?
发表于 2007-9-26 16:37:34 | 显示全部楼层
你试着重定向一下就能看到它是以终端特殊字符来处理的,比如退格。。。我现在没有例子,你可以用wget下一个文件,就能看到进度条,将输出重定向到一个文件里,因为上回这样看到里面有很多特殊的字符。仅供参考
回复 支持 反对

使用道具 举报

发表于 2007-9-26 16:45:56 | 显示全部楼层
我对这个有些映像, 使用linux中一直有一种在terminal下处理光标移动的库, 以n开头的的. 终于找到了, 名为"ncurses", 以下是找到它的一些简介.
NCURSES是什么?
你可能会疑惑,引入的这些技术术语是什么。假设在使用termcap或者terminfo的情况下,每个应用程序都在访问terminfo数据库并且做一些必要的处理(比如发送控制字符等等)。不久这些操作的复杂度将会变得难以控制。于是,curses诞生了。curses 的命名是来自一个叫做 “cursor optimization”(光标最优化)的双关语(译者注:curses本身有诅咒的意思)。curses构成了一个工作在底层终端代码之上的封装,并向用户提供了一个灵活高效的API(Application Programming Interface 应用程序接口)。它提供了移动光标,建立窗口,产生颜色,处理鼠标操作等功能。使程序员编写应用程序不需要关心那些底层的终端操作。

那么ncurses又是什么?ncurses是最早的System V Release 4.0 (SVr4)中 CURSES的一个克隆。这是一个可自由配置的库,完全兼容旧版本的curses。简而言之,它是一个管理应用程序在字符终端显示的函数库。当后面提到curses的时候,同时也可以和NCURSES互换。
关于ncurses详细的更新历史可以查阅ncurses源代码分发包中的NEWS文件。Thomas Dickey是目前的维护人员。你可以通过bug-ncurses@gnu.org联系维护人员
1.2 我们可以用NCURSES做什么?
ncurses不仅仅封装了底层终端功能,而且提供了一个相当稳固的工作框架(Framework)可以在字符模式下产生美观的界面。它提供了一些创建窗口的函数。而它的姊妹库 Menu、Panel和Form则对curses基础库及进行了扩展。这些扩展库通常都随同curses一起发行。我们可以建立一个同时包含多个窗口(multiple windows)、菜单(menus)、面板(panels)和表单(forms)的应用程序。窗口可以被独立管理,例如让它滚动或者隐藏。
  
菜单(Menus)可以让用户建立命令选项,方便用户执行命令。而表单(Forms)允许用户建立一些简单的数据输入和输出的窗口。面板(Panels)是ncurses窗口管理功能的扩展,可以用它覆盖或堆积窗口。

以上这些就是ncurses的简单介绍。在以后的章节里,我们将详细的介绍这些库。
1.3在哪能得到它
现在你知道你可以用ncurses做什么了吧。使用ncurses之前你必须先安装它,通常在安装操作系统(Unix/Linux)时它已被安装。如果你的操作系统里没有ncurses,你可以通过以下的途径安装:
回复 支持 反对

使用道具 举报

发表于 2007-9-26 16:47:51 | 显示全部楼层
对, 就是它, 我再次确认了一次. 大家都知道, gpm是在Terminal下, 可以移动光标的一个程序吧. 我查看了它的依赖库, 就是依赖"ncurses".
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表