linux中获取压缩包的解压进度

来源:互联网 发布:04nba总决赛数据 编辑:程序博客网 时间:2024/06/08 20:06

下面是转载的一段sh脚本:
#!/bin/bashif [ $# -ne 1 ]; then   echo "Usage: $0 file"  exit 1  fiTSIZE=0for FSIZE in $(tar tvvf $1 | awk '{print $3}'); do    if [ "$FSIZE" = "${FSIZE//[^0-9]/}" ]; then         TSIZE=$((TSIZE+FSIZE))    fidone[ $TSIZE -eq 0 ] && exit 1MSG="Extracting..."PROG_POS=$((${#MSG}+1))PERC_POS=$((${#MSG}+53))echo $MSGPREV=-1NSIZE=0for FSIZE in $(tar xvvf $1 | awk '{print $3}'); do    if [ "$FSIZE" = "${FSIZE//[^0-9]/}" ]; then         NSIZE=$((NSIZE+FSIZE))        PERCENT=$((NSIZE*100/TSIZE))        if [ $PERCENT -ne $PREV ]; then             PLUS=$((PERCENT/2))            PROGRESS=$(printf "%.${PLUS}d" | tr '0' '+')            echo -e "\e[A\e[${PROG_POS}G${PROGRESS}=>"            echo -e "\e[A\e[${PERC_POS}G${PERCENT}%"            PREV=$PERCENT        fi          fidone
需要改动的地方可以自己修改。