|
|
引用自:
http://www.linuxsir.org/bbs/thread49972-2.html
#!/bin/sh# Last modified: 2003年07月05日 星期六 00时09分44秒 [test]SOURCE=$1TARGET=$2#CP=./fack_cpCP=cp$CP "$SOURCE" "$TARGET" &CPID=$!isalive(){out=`ps -p $1 2> /dev/null`return $?}while [ 1 ]; do {SSIZE=`/bin/ls -l $SOURCE | gawk "{print \\\$5}"`if [ -f $TARGET ]; thenTSIZE=`/bin/ls -l $TARGET | gawk "{print \\\$5}"`elseTSIZE="0"fiPERCENT=`echo "scale=2; $TSIZE/$SSIZE*100" | bc -l`RATE=`echo "scale=0; 63*$PERCENT/100" | bc -l`BLUE="\\033[3;44m"NORMAIL="\\033[0;39m"BAR=$BLUEi=0while [ $i -le 62 ]; do[ $i = $RATE ] && BAR=$BAR"\\033[7;39m"BAR=$BAR" "let i=$i+1doneBAR=$BAR$NORMAILecho -en "\r$BAR ${PERCENT}%"if ! isalive "$CPID"; then echo -en "\n"; exit; fisleep 1}done
计算多个文件大小:
csize(){ C=0 INRC=0 for file in $1 do INRC=`ls -l $file | awk "{print \\\$5}"` let C=$C+$INRC done return $C} |
|