(转)命令显示进度条

原文:http://blog.163.com/lgh_2002/blog/static/44017526201142410617828/

首先将如下脚本放置在/usr/bin下,要使用cp指令时,以大写CP指令,代替小写cp.

(当然你可以自己修改脚本定制适合自己的命令)

脚本內容如下:

#!/bin/bash
SOURCE=$1
TARGET=$2

#CP=./fack_cp
CP=cp

$CP "$SOURCE" "$TARGET" &
CPID=$!

isalive()
{
    out=`ps -p $1 2> /dev/null`
    return $?
}

while [ 1 ]; do
{
    SSIZE=`/bin/ls -l $SOURCE | awk "{print \$5}"`
    if [ -f $TARGET ]; then
        TSIZE=`/bin/ls -l $TARGET | awk "{print \$5}"`
    else
        TSIZE="0"
    fi
    PERCENT=`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=$BLUE
    i=0
    while [ $i -le 62 ]; do
        [ $i = $RATE ] && BAR=$BAR"\033[7;39m"
        BAR=$BAR" "
        let i=$i+1
    done
    BAR=$BAR$NORMAIL
    echo -en " $BAR ${PERCENT}%"
    if ! isalive "$CPID"; then echo -en " "; exit; fi
    sleep 1
}
done

原文地址:https://www.cnblogs.com/yinsua/p/3478135.html