最初学习C语言的时候,只能在控制台上输出一些东西,和windows相比感觉非常的不实用,虽然也看见过一些程序能在控制台上输出炫酷的颜色的动画,但是基本语法还掌握不牢的时候,这样的程序也只能是欣赏一下,不敢想象自己去写这样的程序,后来也没再有机会研究这方面的东西。
今天,觉得控制台上输出只能顺序输出,最多也就是通过 \b 回退,不过这个回退也不过回退到行首,还有,虽然可以通过 \v 直接跳到下一行,但是:如何回退上上一行呢?如何在屏幕上指定坐标输出呢?
且看下面这个shell:
1 |
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done |
可以在控制台的右上角显示系统时间;
可见tput这个东西可以定位光标位置,那么tput是个什么东西呢?
其实,常用的clear命令就属于ncurses包
把ncureses-devel开发包安装一下就可以开发了; 文档: http://download.csdn.net/detail/Kevinxtq/1063483。该库方便开发terminal程序,当然没有该库也能做简单的光标定位,如:
1 |
echo -e "\e[31;46m\e[0;78HHello World\e[40;37m" |
在0行78列输出一个醒目的Hello World; 但是我不知道如何让光标回到原来的位置。
python 的snack模块就可以用于开发控制台窗口应用: http://www.wanware.com/tsgdocs/snack.html linux上认证方式配置程序: authconfig-tui 就是使用python借助snack来实现的
php 也有ncurses的封装: http://php.net/manual/en/book.ncurses.php
实例:
https://devzone.zend.com/173/using-ncurses-in-php/
https://github.com/PHPGangsta/PHP-NCurses-Example
安装: yum install php-pecl-ncurses
参考资料:
http://bbs.chinaunix.net/thread-4179287-1-1.html
http://www.cnblogs.com/Xiao_bird/archive/2009/07/21/1527947.html