Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3020552
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-09-03 23:51:56

 

  1. #!/bin/bash
  2. trap 'exit_fun' 2

  3. usage(){
  4.         echo "Usage: `basename $0` \"src file\" \"dst file\""
  5.         exit 1
  6. }

  7. exit_fun(){
  8.         echo -e "\033[?25h"
  9.         kill -9 $(ps -ef|awk '/ [c]p /{print $2}') &>/dev/null
  10.         exit 1
  11. }


  12. [ "$#" -ne "2" ] && usage
  13. [ -d "$2" ] && k=${2%%/}/`basename $1` || k=$2

  14. fromsize=`ls -s $1|cut -d" " -f1`
  15. cp $1 $k &
  16. start=`date +%s`
  17. sleep 0.2
  18. echo -ne "\033[?25l"
  19. while :;do
  20.         tosize=`ls -s $k|cut -d" " -f1`
  21.         x=`echo "$tosize $fromsize"|awk '{print int($1*100/$2)}'`
  22.         [ $x -eq 99 ] && x=100
  23.         echo -n "["
  24.         for((i=0;i<x;i=$i+2));do echo -n "=";done
  25.         echo -n ">"
  26.         for((j=i;j<=99;j=$j+2));do echo -n " ";done
  27.         now=$[`date +%s` - $start]
  28.         [ $now -eq 0 ] && now=1
  29.         avg=$[$tosize/$now/1024]
  30.         printf "] %4s%% %4sM/s" $i $avg
  31.         [ $x -ge 100 ] && break
  32.         sleep 0.1
  33.         echo -ne "\r"
  34. done
  35. echo -e "\033[?25h"
阅读(2323) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~