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
需要改动的地方可以自己修改。