LinuxSir.cn,穿越时空的Linuxsir!

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

请教如何输出时间倒计时?

[复制链接]
发表于 2004-8-9 09:04:25 | 显示全部楼层 |阅读模式
比如要输出 10 9 8 而且是替换输出的,就是倒数到10,然后把10替换成9,然后替换成8,依次类推

谢谢
 楼主| 发表于 2004-8-9 09:19:17 | 显示全部楼层

忘了说不能用下面的脚本实现,大家可以另想其他方法

这样的不行哦
  1. [color=red]#!/bin/bash

  2. COUNTER=60

  3.   while [ $COUNTER -ge 0 ]
  4. do
  5.   echo -n "$COUNTER..."
  6.   sleep 1
  7. let COUNTER--
  8. done[/color]
复制代码


也不能用
  1. [color=red]#!/bin/bash

  2. COUNTER=60
  3. [color=green]clear[/color]
  4.   while [ $COUNTER -ge 0 ]
  5. do
  6.   echo -n "$COUNTER..."
  7.   sleep 1
  8.   [color=green]clear[/color]
  9. let COUNTER--
  10. done[/color]
复制代码


大家来讨论一下吧,:p
发表于 2004-8-9 09:54:39 | 显示全部楼层
到底能用什么?
发表于 2004-8-9 09:57:32 | 显示全部楼层

  1. for i in $(seq 60|tac);do
  2.         echo -n " \a$i\r "
  3.         sleep 1
  4. done
复制代码
 楼主| 发表于 2004-8-9 09:58:58 | 显示全部楼层

我想大家的思维都不一样的,我所知道的命令也是少得可怜的

所以我想大家肯定有很多种不同的方法来实现,不管你用什么shell语言(最好是ksh,csh,bash,sh,perl),什么命令,什么语句,只要能实现倒计时10 然后把10替换成9,依次类推直到0为止
 楼主| 发表于 2004-8-9 10:16:59 | 显示全部楼层

谢谢kornlee

不过小弟有些地方不明白
在我的bash里用echo -en " \a$i\r "  加了-e 才能解释\a这种,其他的不知道是什么样的

还有就是 " \a$i\r "

\a是什么意思?我用man,\a是alert然后用金山查不出来
版主是否有好的计算机英语专用词典的?推进个;)


PS:你怎么改名了:thank
发表于 2004-8-9 10:17:03 | 显示全部楼层
seq 10 | tac | awk '{printf("\b\b\b%d ", $0); system("sleep 1")}'
发表于 2004-8-9 10:22:06 | 显示全部楼层

回复: 谢谢kornlee

最初由 battosai 发表
不过小弟有些地方不明白
在我的bash里用echo -en " \a$i\r "  加了-e 才能解释\a这种,其他的不知道是什么样的

还有就是 " \a$i\r "

\a是什么意思?我用man,\a是alert然后用金山查不出来
版主是否有好的计算机英语专用词典的?推进个;)


PS:你怎么改名了:thank

\a是响铃,\r是退格

最初由 doubleelec 发表

seq 10 | tac | awk '{printf("\b\b\b%d ", $0); system("sleep 1")}'

太精彩了 ~~
发表于 2004-8-9 10:25:02 | 显示全部楼层
受楼上的启发,应该写成这样

seq 10 | tac | awk '{printf("\r%d ", $0); system("sleep 1")}'
 楼主| 发表于 2004-8-9 11:08:20 | 显示全部楼层

如果要输入一段文字,然后加时间倒数,好像用printf不行呢

比如要输出"Just shutdown the system servers, please wait for a minute...60...."

不过毕竟是其他路,学习ing~~~~~:p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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