Chinaunix首页 | 论坛 | 博客
  • 博客访问: 499304
  • 博文数量: 176
  • 博客积分: 4045
  • 博客等级: 上校
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 11:23
文章分类

全部博文(176)

文章存档

2011年(7)

2009年(12)

2008年(157)

我的朋友

分类:

2009-10-31 11:02:19

http://linux.bloghome.cn/posts/83075.html

在shell中执行费事的任务时,最好显示一个进度条,以便知道shell还在跑。

下面的脚本可以实现这一点:
shell中的进度条
  1. #!/bin/sh
  2. #输出"."进度条函数,兼容bsh、ksh、bash
  3. #首先trap 1 2 3 15信号,重要

  4. trap 'kill $BG_PID;echo;exit' 1 2 3 15
  5.  
  6. function dots
  7. {
  8. stty -echo >/dev/null 2>&1
  9. while true
  10. do
  11. echo ".\c"
  12. sleep 1
  13. done
  14. stty echo
  15. echo
  16. }
  17.  
  18. #---------------------------------------------
  19. # 主程序开始
  20. #---------------------------------------------

  21. #首先使dots函数后台运行
  22. dots &
  23. BG_PID=$!
  24.  
  25. #开始程序主体,本例中执行休眠10
  26. #注意必要时使用 >/dev/null 2>&1关闭输出和错误回显,避免破坏显示
  27. sleep 10
  28.  
  29. #程序结尾注意kill dots,否则dots会一直执行
  30. kill $BG_PID
阅读(2103) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~