@@ -155,7 +155,7 @@ num1="$1"; num2="$2";
155155while kill -0 $PIDK 2> /dev/null; do
156156if [ -f " $num2 " ]; then
157157 num3=$( wc -c < " $num2 " )
158- if [ " $num3 " ]; then
158+ if [ " ${ num3:- 0} " != 0 ]; then
159159 [ " ${num3:- 0} " == " ${num4:- 1} " ] || progress " $(( num3 * 100 / num1 )) /100"
160160 num4=" $num3 "
161161 fi
@@ -173,7 +173,7 @@ if [ "$partition" == "erofs" ];then
173173 if [ -f " $TMP /mkfs_erofs.log" ]; then
174174 num1=" $( grep " ^loaded .*. fs_config entries" $TMP /mkfs_erofs.log | awk ' {print $2}' ) "
175175 num2=" $( echo " $( grep -c ' Processing' $TMP /mkfs_erofs.log) + 1" | bc) "
176- if [ " $num2 " ]; then
176+ if [ " ${ num2:- 0} " != 0 ]; then
177177 [ " ${num2:- 0} " == " ${num4:- 1} " ] || progress " $(( num2 * 100 / num1 )) /100"
178178 num4=" $num2 "
179179 fi
@@ -261,7 +261,7 @@ elif [ "$partition" == "squashfs" ];then
261261 while kill -0 $PIDK 2> /dev/null; do
262262 if [ -f $TMP /mksquashfs.log ]; then
263263 number_kk=" $( sed ' s/[\r\t]/\n/g' $TMP /mksquashfs.log | sed -n ' s/.* \([0-9]\+\)%$/\1/p' | tail -n 1) "
264- if [ " $number_kk " ]; then
264+ if [ " ${ number_kk:- 0} " != 0 ]; then
265265 [ " ${number_kk:- 0} " == " ${save_num:- 1} " ] || progress $number_kk /100
266266 save_num=" $number_kk "
267267 fi
@@ -360,16 +360,17 @@ if [[ "$partition" =~ ^(erofs|f2fs|ext)$ ]];then
360360 echo
361361 fi
362362 if [ " $CONVER " == ' zstd' ] || [ " $CONVER " == ' gz' ] || [ " $CONVER " == ' xz' ] || [ " $CONVER " == ' lz4' ] || [ " $CONVER " == ' lzma' ]; then
363- zstd --progress -f -$lvnen --format=$CONVER --compress " $saved " -o " ${out_saved% .* } .img.$CONVER " & > " $TMP /repzstd.log" &
363+ zstd --progress -f -$lvnen --format=$CONVER --compress " $saved " -o " ${out_saved% .* } .img.$CONVER " & > " $TMP /repzstd.log" || killtree " Cover zstd error " &
364364 PIDK=$!
365365 while kill -0 $PIDK 2> /dev/null; do
366- if [ -f " $TMP /repzstd.log" ]; then
367- num2=" $( tr ' \r' ' \n' < " $TMP /repzstd.log" | awk ' /Read:/{r=$2*($3=="GiB"?1024:1); t=$5*($6=="GiB"?1024:1)} END{print (t>0?int(r/t*100):0)}' ) "
368- if [ " $num2 " ] ; then
369- [ " ${num2:- 0} " == " ${num4 :- 1} " ] || progress " $num2 /100 "
370- num4= " $num2 "
371- fi
366+ if [ -f " $TMP /repzstd.log" ]; then
367+ num2=" $( tr ' \r' ' \n' < " $TMP /repzstd.log" | awk ' /Read:/{r=$2*($3=="GiB"?1024:1); t=$5*($6=="GiB"?1024:1)} END{print (t>0?int(r/t*100):0)}' ) "
368+ [ $num2 == 0 ] && num2= " $( tr ' \r ' ' \n ' < " $TMP /repzstd.log " | awk ' /^Read/{r=$3; t=$5} END{print (t>0?int(r/t*100):0)} ' ) "
369+ if [ " ${num2:- 0} " != 0 ] ; then
370+ [ " ${num2 :- 0} " == " ${ num4:- 1} " ] || progress " $num2 /100 "
371+ num4= " $num2 "
372372 fi
373+ fi
373374 sleep 1
374375 done
375376 progress -1/0
0 commit comments