工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2127|回复: 3

[SHELL we talk 之三]进度条控制

[复制链接]
发表于 2006-5-3 00:30 | 显示全部楼层 |阅读模式
做毕业做累了,写个shell玩玩。

目的:我们执行一些脚本时,如果执行比较时间的话,有个进度条就可以方便知道脚本正在执行中。


  1. #!/bin/sh


  2. ########################################
  3. # 2006.5.2 created by hjack
  4. #
  5. ########################################


  6. Usage(){
  7.   echo "Usage: bar.sh script"
  8.   exit 1
  9. }

  10. #---------------------------------------
  11. if [ $# -lt "1" ];then
  12.   Usage "$@"
  13. fi

  14. count=0
  15. echo -n "running"
  16. while true
  17. do
  18.   count=`expr $count + 1`
  19.   echo -n "."
  20.   countj=`expr $count % 5`
  21.   if [ $countj -eq "0" ];then
  22.     echo -e -n "\b\b\b\b\b     \b\b\b\b\b"
  23.   fi
  24.   sleep 1
  25. done &

  26. PID=$!

  27. ./$@

  28. kill $PID

  29. echo -e "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bfinished.   "

复制代码


说明:用一个while死循环在后台运行,并记下它的进程号,输出点符号,当点符号达到五个时,清空再重新输出,不断重复。

  由于该循环是在后台运行,所以下在的代码还是会执行 ,./$@就是把参数传入的脚本,在此执行。执行完后就kill掉死循环。

  但是对于系统命令还不能执行,比如./bar.sh ls  这会出错。

做了一个小动画,效果见图。

[ 本帖最后由 hjack 于 2006-5-4 15:31 编辑 ]
未命名-1.gif
发表于 2006-5-7 20:13 | 显示全部楼层
对于楼主的动画...比较无语...
回复

使用道具 举报

 楼主| 发表于 2006-5-7 20:51 | 显示全部楼层
甘嚣,帮我做个好看一点的啦。。。。
回复

使用道具 举报

发表于 2006-5-8 01:44 | 显示全部楼层
原帖由 hjack 于 2006/5/7 12:51 发表
甘嚣,帮我做个好看一点的啦。。。。


我识鬼做...

吾系话楼主个动画吾好睇,,,系话楼主放动画这个行为好搞野...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-31 01:13

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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