Chinaunix

标题: 能够用shell实现动态时钟吗? [打印本页]

作者: legendfan    时间: 2004-05-19 23:09
标题: 能够用shell实现动态时钟吗?
  请问各位大侠,在SCO 5 中是否能够通过shell在屏幕上实现每秒钟自动刷新的动态时钟??
作者: sdccf    时间: 2004-05-20 07:52
标题: 能够用shell实现动态时钟吗?
shell版好像有类似的帖子,可以去看一下。
作者: legendfan    时间: 2004-05-20 14:38
标题: 能够用shell实现动态时钟吗?
  我找了,找不到,还是请哪位大虾直接告诉我算了。

  给高分。

  谢谢!
作者: zhaojinbo    时间: 2004-05-20 14:44
标题: 能够用shell实现动态时钟吗?
你是想让这个shell只显示时钟还是怎的?
作者: legendfan    时间: 2004-05-20 21:04
标题: 能够用shell实现动态时钟吗?
要能够实时更新时间,即可以实现一秒一秒地跳动这个功能。

  有什么好办法吗?
作者: sdccf    时间: 2004-05-20 21:28
标题: 能够用shell实现动态时钟吗?
好象可以用循环实现,用sleep 1实现跳秒.
作者: zg3879    时间: 2004-05-20 23:25
标题: 能够用shell实现动态时钟吗?
DATE=`date +%T`
while [ T ]
do
echo "\033[10;25H$DATE"
done
作者: sdccf    时间: 2004-05-21 07:36
标题: 能够用shell实现动态时钟吗?
没有实现动态。
作者: c1l2d3    时间: 2004-05-21 07:51
标题: 能够用shell实现动态时钟吗?
  1. clear;while true;do tput cup 10 10;echo `date +%T`;done
复制代码


动态显示时钟容易,但在这一屏就不能在做其它事了,shell怕是实现不了这样的功能了。
作者: sdccf    时间: 2004-05-21 08:31
标题: 能够用shell实现动态时钟吗?
这里有一个C语言的:

http://unix-cd.com/softdown/show.asp?id=160
作者: legendfan    时间: 2004-05-21 13:37
标题: 能够用shell实现动态时钟吗?
原帖由 "c1l2d3" 发表:

动态显示时钟容易,但在这一屏就不能在做其它事了,shell怕是实现不了这样的功能了。


  对啊,就是这种讨厌!有没有什么更好的办法可将其融合到屏幕的某个位置??
作者: sdccf    时间: 2004-05-21 13:51
标题: 能够用shell实现动态时钟吗?
原帖由 "sdccf" 发表:
这里有一个C语言的:

http://unix-cd.com/softdown/show.asp?id=160



这个可以.
作者: legendfan    时间: 2004-05-21 15:33
标题: 能够用shell实现动态时钟吗?
我不想要这个程序,只想在SHELL中能够实现就最好了。

难道没有什么更好的办法了吗?
作者: c1l2d3    时间: 2004-05-21 15:38
标题: 能够用shell实现动态时钟吗?
原帖由 "legendfan" 发表:
我不想要这个程序,只想在SHELL中能够实现就最好了。

难道没有什么更好的办法了吗?


至今没发现谁用shell搞定,期盼ing~~
作者: legendfan    时间: 2004-05-21 16:40
标题: 能够用shell实现动态时钟吗?
啊????

难道就真的一点办法都没有了吗?
作者: sdccf    时间: 2004-05-21 17:45
标题: 能够用shell实现动态时钟吗?
我贴的那个C的可以放到后台运行,动态显示时间,不影响进行其它操作.

# cdate &
作者: zg3879    时间: 2004-05-21 18:00
标题: 能够用shell实现动态时钟吗?
clear;
while [ T ]
do
DATE=`date +%T`
echo "\033[10;25H$DATE"
done
这样执行应该是可以,你可以试一试.
作者: hsgzr    时间: 2004-05-21 19:48
标题: 能够用shell实现动态时钟吗?
 有 shell可以实现的
作者: legendfan    时间: 2004-05-21 20:09
标题: 能够用shell实现动态时钟吗?
究竟怎么实现吗?
有谁能告诉我?

谢谢!!真的很急,想要!!!
作者: legendfan    时间: 2004-05-23 23:13
标题: 能够用shell实现动态时钟吗?
sdccf 写到:
这里有一个C语言的:

http://unix-cd.com/softdown/show.asp?id=160



这个可以.


老法王的这个程序的确是可以实现,但是它同前面几位朋友所说的shell脚本一样,不能融合到某个界面中单独在一小块地方运行同时并不影响界面其他部分的显示。

有什么好办法能够将它融合到某个界面中吗?
作者: sdccf    时间: 2004-05-23 23:14
标题: 能够用shell实现动态时钟吗?
修改源程序中显示的位置即可.
作者: legendfan    时间: 2004-05-23 23:16
标题: 能够用shell实现动态时钟吗?
我要求的是要融合到某个界面中并且又不影响界面其它部分的运行和显示,该怎么实现呢?

这个问题困扰我很久了。
作者: cdfb    时间: 2004-05-23 23:22
标题: 能够用shell实现动态时钟吗?
你可以用一个匿名进程在屏幕的相应位置显示时间即可
作者: legendfan    时间: 2004-05-23 23:23
标题: 能够用shell实现动态时钟吗?
两个进程怎么重叠啊?

请楼上那位详细告知操作办法。

谢谢!!
作者: sdccf    时间: 2004-05-24 00:09
标题: 能够用shell实现动态时钟吗?
修改源程序,让时间显示在相应位置即可.
作者: lw371    时间: 2004-05-24 08:19
标题: 能够用shell实现动态时钟吗?
你必须写一个新shell(壳程序)替换掉你现在的shell(sh/ksh/csh)
例如cce汉字程序那样启动一个新shell,自身在第25行显示汉字输入及时钟,
这样才能和其他程序的显示输出互不干扰。
你只通过简单的shell代码来替换sh/ksh/csh是不可能实现的,你无法截获显示中断调用到你当前的shell代码
作者: legendfan    时间: 2004-05-24 13:25
标题: 能够用shell实现动态时钟吗?
哦,好像挺复杂的。
作者: pxlsszf    时间: 2004-05-24 23:07
标题: 能够用shell实现动态时钟吗?
这有一种做法可以简单实现:
#cat  showtm
while true
do
      DT=`date +%Y%M%d`"  "`date +%H%m%S`
      TTY=`tty`
      echo $DT >;$TTY
      sleep 1
done

然后执行时:
# showtm&
作者: legendfan    时间: 2004-05-25 21:42
标题: 能够用shell实现动态时钟吗?
楼上的方法不行。还是老法王的好用,不过我不知道怎样修改源程序让它能在想要的位置显示动态时间。
作者: legendfan    时间: 2004-05-25 21:45
标题: 能够用shell实现动态时钟吗?
[quote]原帖由 "sdccf"]修改源程序,让时间显示在相应位置即可.[/quote 发表:


请问老法王,应该怎样修改源程序才能让这个动态时钟在自己想要的位置显示??

我对C程序还没有研究,诚恳地向您请教!!!

谢谢!!
作者: sdccf    时间: 2004-05-26 09:01
标题: 能够用shell实现动态时钟吗?
你打开源程序就看到怎么修改了。
作者: zhaojinbo    时间: 2004-05-26 16:39
标题: 能够用shell实现动态时钟吗?
其实困扰楼上各位的问题是这样的:
后台程序显示完时钟后,光标会停留在时钟显示的后面,问题是如何让光标回到原来的位置。比如前台程序正在第10行显示交互信息,当时钟程序该显示的时候,他把光标移动到了第25行(假设),但是时钟程序又不知道光标原来就在第10行,而前台程序也不知道光标已经跑了会自顾自地继续输出。因此屏幕会乱套。如果前台程序在输出每个字符之前都首先将光标定位还行,但并不是每个前台程序都是这样的。
不知说清楚了没有。
解决的办法是有的。
ANSI和其它终端都支持一对换码序列ESC7和ESC8,ESC7可以记住当前光标的位置,ESC8可以恢复光标位置。ESC的ASCII码值是十进制27,7和8是字符。
我以前写过一个C程序,放在后台执行,可以实时显示当前时钟,基本不影响前台程序工作。但当前台程序做集中大量输出的时候,屏幕会乱。
现在把SHELL贴出来,供大家参考。执行的时候在命令后面加一个&符号今后台即可。

while true
do
echo "^[7\c"                  
echo "\033[1;53H\c"
date
echo "^[8\c"
sleep 1
done

^[8用\0338代替也可以,但是^[7不能用\0337代替,因为shell会把0337解释成八进制数337。^[在vi中用Ctrl-V+Ctrl-[的办法输入。
作者: legendfan    时间: 2004-05-26 17:48
标题: 能够用shell实现动态时钟吗?
楼上说的是最清楚的一次,我想肯定是最好的解决办法了。

去试试看,然后再回来。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2