LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-11-19, 01:02 第 1 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

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


如何让屏幕的任一坐标(如:第3行第60列)显示一条动态/静态信息(如时间),而不影响屏幕其他位置的信息的输出/输入等操作?我觉得有一定难度
[BTW:我的表达能力实在忒差]
  KornLee 当前离线   回复时引用此帖
旧 03-11-19, 01:28 第 2 帖
kiron
 
kiron 的头像
 
 
退役版主  
  注册日期: Apr 2003
  帖子: 1,261
  精华: 13
 

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


引用:
最初由 javalee 发表
如何让屏幕的任一坐标(如:第3行第60列)显示一条动态/静态信息(如时间),而不影响屏幕其他位置的信息的输出/输入等操作?我觉得有一定难度
[BTW:我的表达能力实在忒差]
有一个工具可以使用:tput
还是要提到我以前写的一个失败的脚本:( :(
http://www.linuxsir.org/bbs/showthre...t=%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行显示错误信息,然后返回保存位置,不影响原来行的再次输入。







__________________
深邃的技术不仅表现在敏捷的思维和高超的本领,还有过人的修养。

此帖于 03-11-19 01:33 被 kiron 编辑.
  kiron 当前离线   回复时引用此帖
旧 03-11-19, 01:50 第 3 帖
werix
 
werix 的头像
 
 
BSD临时退役干部  
  注册日期: Jan 2003
  我的住址: Iraq, Allah Akbar
  帖子: 513
  精华: 6
 

xclock --geometry 100X100+600+450 &

here +600 and +450 are relative to X and Y. and 0.0 at top of left
  werix 当前离线   回复时引用此帖
旧 03-11-19, 02:15 第 4 帖
狂客
 
狂客 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 286
  精华: 0
 

good!







__________________
http://oneman.xicp.net
  狂客 当前离线   回复时引用此帖
旧 03-11-19, 02:43 第 5 帖
lucida
 
 
 
注册会员  
  注册日期: Oct 2002
  我的住址: .:DRL:.
  帖子: 2,492
  精华: 9
 

很怪异的要求,有什么实际用途呢?







__________________
E6300@3.2G/P5B-D WiFi/2G RAM/1TB HDD/3540A/7900GT/E-MU 0404
Logitech S 510/MX Revolution/2407WFP/LaserJet 1020
go wild, go Gentoo
  lucida 当前离线   回复时引用此帖
旧 03-11-19, 12:52 第 6 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 penny 发表
很怪异的要求,有什么实际用途呢?
呵呵~~,活跃一下沉闷的气氛而已~~, penny兄好久没来,一向可好
引用:
最初由 kiron 发表

有一个工具可以使用:tput
还是要提到我以前写的一个失败的脚本
http://www.linuxsir.org/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的精彩解释

此帖于 03-11-19 12:55 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-11-19, 16:08 第 7 帖
werix
 
werix 的头像
 
 
BSD临时退役干部  
  注册日期: Jan 2003
  我的住址: Iraq, Allah Akbar
  帖子: 513
  精华: 6
 

and mine? am I right?
  werix 当前离线   回复时引用此帖
旧 03-11-19, 16:21 第 8 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

引用:
最初由 werix 发表
and mine? am I right?
sorry, you are right, too
  KornLee 当前离线   回复时引用此帖
旧 06-11-14, 17:12 第 9 帖
moonlily
 
 
 
注册会员  
  注册日期: Oct 2006
  帖子: 4
  精华: 0
 

#!/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&
  moonlily 当前离线   回复时引用此帖
旧 07-12-07, 13:03 第 10 帖
zswlb9999
 
 
 
注册会员  
  注册日期: Jan 2005
  帖子: 740
  精华: 0
 

找了很久这方面的资料!
我的问题是:
1)如何获取的screen大小col,row
2)tput sr :如何取得(不是由tput保存)当前的row,col
另:shell有否printf : 类的输出screen语句。
  zswlb9999 当前离线   回复时引用此帖
旧 07-12-08, 20:23 第 11 帖
zswlb9999
 
 
 
注册会员  
  注册日期: Jan 2005
  帖子: 740
  精华: 0
 

tput cols
tput lines
  zswlb9999 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 12:36


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org