• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

在线求助:如何在虚拟终端显示彩色字符?

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 19次 | 进入软件测试论坛讨论

领测软件测试网
请问:在X-Win环境,利用Terminal运行JED编辑器可以显示彩色字符,以不同颜色显示语法。

但在虚拟终端以Telnet方式调用编辑器时,只能显示黑白两色。请问如何设置能达到上面的效果?比如:不同的终端模式,使用特殊的终端软件等?

请赐教。

 laoxia 回复于:2003-07-08 10:37:13
ZT 

对于在Shell下面编写屏幕程序,大家使用echo命令比较多,而且此命令也比较快。下面介绍的是比较漂亮一点的方法,但是速度比较慢。要实现这一点,系统上需要一个彩色监视器和tput命令。
一.使用
在使用tput前,需要在脚本或命令行中使用tput命令初始化终端。
$ tput init
tput产生三种不同的输出:字符型、数字型和布尔型(真/假)。
/字符串输出/
下面是大部分常用字符串:
名字含义
bel 警铃
blink 闪烁模式
bold 粗体
civis 隐藏光标
clear 清屏
cnorm 不隐藏光标
cup 移动光标到屏幕位置( x,y)
el 清除到行尾
ell 清除到行首
smso 启动突出模式
rmso 停止突出模式
smul 开始下划线模式
rmul 结束下划线模式
sc 保存当前光标位置
rc 恢复光标到最后保存位置
sgr0 正常屏幕
rev 逆转视图
/数字输出/
以下是大部分常用数字输出。
名字含义
cols 列数目
ittab设置宽度
lines 屏幕行数
/布尔输出/
在tput中只有两种布尔操作符。
名字含义
chts 光标不可见
hs 具有状态行

例如:tput clear 清除屏幕

二.光标位置
可以用tput将光标放在屏幕任意位置。格式为:
cup r c
r为从上至下屏幕行数, c为穿过屏幕列数。
最好将之编成函数,这样就可以把行和列的值传递给它。
例子:tput cup 2 3命令将光标放到第2行、第3列。

三.菜单中使用颜色
对域使用颜色可以使数据输入屏幕看起来更加专业。下面将使用的颜色是A N S I标准颜
色,并不是所有颜色都适合于所有系统。下面列出了大部分常用颜色。
1. 前景色:
数字颜色数字颜色
3 0 黑色3 4 蓝色
3 1 红色3 5 紫色
3 2 绿色3 6 青色
3 3 黄(或棕)色3 7 白(或灰)色
2. 背景色:
数字颜色数字颜色
4 0 黑色4 4 青色
4 1 红色4 5 蓝色
4 2 绿色4 6 青色
4 3 黄(或棕)色4 7 白(或灰)色

例子:黑底绿字echo "\033[40;32m"

使用tput命令可以增强应用外观及脚本的控制。颜色设置可以增加应用的专业性。注意使
用颜色不要太过火,否则速度会非常的慢。

 beginner-bj 回复于:2003-07-08 12:27:27
能不能实现象REDHAT那样,ls时目录是一种颜色、文件是一种颜色、link又是另一种颜色?

 yohoo7 回复于:2003-07-08 13:42:15
楼上想问的是类似bash的功能吧?

 beginner-bj 回复于:2003-07-08 13:59:31
应该不是bash的功能。redhat下ls --color就可以分颜色显示,不知solaris下应如何实现?

 maiku 回复于:2003-07-08 16:15:29
coreutils in sunfreeware

 yohoo7 回复于:2003-07-08 16:31:57
恕愚钝 楼上能否再给一个清楚的描述?

 beginner-bj 回复于:2003-07-08 21:48:09
[quote:5bae64d128="maiku"]coreutils in sunfreeware[/quote:5bae64d128]   

是这个吗?好象不管用啊?
bash-2.03# pkgadd -d shutils-2.0.15-sol8-intel-local

The following packages are available:
  1  SMCshutil     shutils
                   (intel) 2.0.15

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Processing package instance <SMCshutil> from </var/spool/pkg/shutils-2.0.15-sol8
-intel-local>

shutils
(intel) 2.0.15
Free Software Foundation
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
   4 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

Installing shutils as <SMCshutil>

## Installing part 1 of 1.
/usr/local/bin/basename
/usr/local/bin/chroot
/usr/local/bin/date
/usr/local/bin/dirname
/usr/local/bin/env
/usr/local/bin/expr
/usr/local/bin/factor
/usr/local/bin/false
/usr/local/bin/groups
/usr/local/bin/hostid
/usr/local/bin/hostname
/usr/local/bin/id
/usr/local/bin/kill
/usr/local/bin/logname
/usr/local/bin/nice
/usr/local/bin/nohup
/usr/local/bin/pathchk
/usr/local/bin/pinky
/usr/local/bin/printenv
/usr/local/bin/printf
/usr/local/bin/pwd
/usr/local/bin/seq
/usr/local/bin/sleep
/usr/local/bin/stty
/usr/local/bin/tee
/usr/local/bin/test
/usr/local/bin/true
/usr/local/bin/tty
/usr/local/bin/uname
/usr/local/bin/uptime
/usr/local/bin/users
/usr/local/bin/who
/usr/local/bin/whoami
/usr/local/bin/yes
/usr/local/doc/shutils/ABOUT-NLS
/usr/local/doc/shutils/AUTHORS
/usr/local/doc/shutils/COPYING
/usr/local/doc/shutils/ChangeLog
/usr/local/doc/shutils/ChangeLog.0
/usr/local/doc/shutils/INSTALL
/usr/local/doc/shutils/NEWS
/usr/local/doc/shutils/README
/usr/local/doc/shutils/README-alpha
/usr/local/doc/shutils/THANKS
/usr/local/doc/shutils/TODO
/usr/local/doc/shutils/doc/ChangeLog
/usr/local/doc/shutils/doc/Makefile
/usr/local/doc/shutils/doc/Makefile.am
/usr/local/doc/shutils/doc/Makefile.in
/usr/local/doc/shutils/doc/constants.texi
/usr/local/doc/shutils/doc/coreutils.info
/usr/local/doc/shutils/doc/coreutils.texi
/usr/local/doc/shutils/doc/doclicense.texi
/usr/local/doc/shutils/doc/getdate.texi
/usr/local/doc/shutils/doc/perm.texi
/usr/local/doc/shutils/doc/stamp-vti
/usr/local/doc/shutils/doc/version.texi
/usr/local/info/coreutils.info
/usr/local/man/man1/basename.1
/usr/local/man/man1/chroot.1
/usr/local/man/man1/date.1
/usr/local/man/man1/dirname.1
/usr/local/man/man1/echo.1
/usr/local/man/man1/env.1
/usr/local/man/man1/expr.1
/usr/local/man/man1/factor.1
/usr/local/man/man1/false.1
/usr/local/man/man1/groups.1
/usr/local/man/man1/hostid.1
/usr/local/man/man1/hostname.1
/usr/local/man/man1/id.1
/usr/local/man/man1/logname.1
/usr/local/man/man1/nice.1
/usr/local/man/man1/nohup.1
/usr/local/man/man1/pathchk.1
/usr/local/man/man1/pinky.1
/usr/local/man/man1/printenv.1
/usr/local/man/man1/printf.1
/usr/local/man/man1/pwd.1
/usr/local/man/man1/seq.1
/usr/local/man/man1/sleep.1
/usr/local/man/man1/stty.1
/usr/local/man/man1/su.1
/usr/local/man/man1/tee.1
/usr/local/man/man1/test.1
/usr/local/man/man1/true.1
/usr/local/man/man1/tty.1
/usr/local/man/man1/uname.1
/usr/local/man/man1/uptime.1
/usr/local/man/man1/users.1
/usr/local/man/man1/who.1
/usr/local/man/man1/whoami.1
/usr/local/man/man1/yes.1
[ verifying class <none> ]

Installation of <SMCshutil> was successful.

 beginner-bj 回复于:2003-07-08 21:48:48
[quote:4f1f1a9b38="yohoo7"]恕愚钝 楼上能否再给一个清楚的描述?[/quote:4f1f1a9b38]   

http://dcsearch.sun.com/search/sfw/index.jsp?qt=coreutils&qp=&qp=

 javamud 回复于:2003-07-09 05:02:39
老虾这么早就起来啦?
pfpf
小弟这里有豆腐脑,来一碗?

 laoxia 回复于:2003-07-09 05:06:26
四年没吃豆腐脑了啊,呵呵

 yohoo7 回复于:2003-07-09 10:20:19
顶一下。
现在的问题究竟是sh的问题,还是远端终端软件的问题,尚未明了。

 deeperpurple 回复于:2003-08-02 17:22:58
我也顶上去,确实不明白 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网