LinuxSir.cn,穿越时空的Linuxsir!

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

考考你:关于屏幕定位显示

[复制链接]
发表于 2003-11-19 01:02:42 | 显示全部楼层 |阅读模式
如何让屏幕的任一坐标(如:第3行第60列)显示一条动态/静态信息(如时间),而不影响屏幕其他位置的信息的输出/输入等操作?我觉得有一定难度 ;)
[BTW:我的表达能力实在忒差:sorry]
发表于 2003-11-19 01:28:18 | 显示全部楼层

回复: 考考你:关于屏幕定位显示

最初由 javalee 发表
如何让屏幕的任一坐标(如:第3行第60列)显示一条动态/静态信息(如时间),而不影响屏幕其他位置的信息的输出/输入等操作?我觉得有一定难度 ;)
[BTW:我的表达能力实在忒差:sorry]


有一个工具可以使用:tput
还是要提到我以前写的一个失败的脚本
http://www.linuxsir.cn/bbs/showt ... hlight=%D1%D5%C9%AB
里面有两个函数是这样的:
#this part for set x,y
#这个函数定位光标
xy()
{
_row=$1
_col=$2
tput cup $_row $_col
}
#this part for status message
#这个函数在菜单的尾部的一个status行下显示提示信息,把21,22,23三行的内
#容当作显示信息的部分,每次显示时清这三行内容并显示新的提示,最后光标
#回原来的位置
statusshow()
{
tput sc
xy 23 1
xy 22 1
xy 21 1
echo $1
tput rc
}
我稍稍解释一下tput这个工具,
tput cup x y:指定位光标到X行Y列
tput sc:保存当前光标位置
tput rc:返回上一次保存的光标位置
不知这样是否达到了版主的要求??? ;)
在我上面的脚本中界面就是靠这个工具做出来的,界面完全没有问题,
在有错误的输入时,在21,22,23行显示错误信息,然后返回保存位置,不影响原来行的再次输入。
发表于 2003-11-19 01:50:22 | 显示全部楼层
xclock --geometry 100X100+600+450 &

here +600 and +450 are relative to X and Y. and 0.0 at top of left
发表于 2003-11-19 02:15:40 | 显示全部楼层
good!
发表于 2003-11-19 02:43:52 | 显示全部楼层
很怪异的要求,有什么实际用途呢?
 楼主| 发表于 2003-11-19 12:52:14 | 显示全部楼层
最初由 penny 发表
很怪异的要求,有什么实际用途呢?

呵呵~~,活跃一下沉闷的气氛而已~~, penny兄好久没来,一向可好
最初由 kiron 发表

有一个工具可以使用:tput
还是要提到我以前写的一个失败的脚本
http://www.linuxsir.cn/bbs/showthr...ht=%D1%D5%C9%AB
里面有两个函数是这样的:
#this part for set x,y
#这个函数定位光标
xy()
{
_row=$1
_col=$2
tput cup $_row $_col
}
#this part for status message
#这个函数在菜单的尾部的一个status行下显示提示信息,把21,22,23三行的内
#容当作显示信息的部分,每次显示时清这三行内容并显示新的提示,最后光标
#回原来的位置
statusshow()
{
tput sc
xy 23 1
xy 22 1
xy 21 1
echo $1
tput rc
}
我稍稍解释一下tput这个工具,
tput cup x y:指定位光标到X行Y列
tput sc:保存当前光标位置
tput rc:返回上一次保存的光标位置
kiron兄的tput工具运用得很好!再此谢谢你对tput的精彩解释
发表于 2003-11-19 16:08:11 | 显示全部楼层
and mine? am I right?
 楼主| 发表于 2003-11-19 16:21:42 | 显示全部楼层
最初由 werix 发表
and mine? am I right?

sorry, you are right, too ;)
发表于 2006-11-14 17:12:38 | 显示全部楼层
#!/bin/bash
function showtime()
{
echo -ne "\033[2J"
while :
do
echo -ne "\033[s\033[1;53H$(date -u)\033[u"
sleep 1
done
}
showtime&
回复 支持 反对

使用道具 举报

发表于 2007-12-7 13:03:25 | 显示全部楼层
找了很久这方面的资料!
我的问题是:
1)如何获取的screen大小col,row
2)tput sr :如何取得(不是由tput保存)当前的row,col
另:shell有否printf : 类的输出screen语句。
回复 支持 反对

使用道具 举报

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

本版积分规则

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