Чтобы получить процентное значение, вам необходимо знать общее количество файлов.
Вы можете получить это из ls -R
внутри другого lftp
, начиная с того же каталога, что и ваше зеркало
команда. Я вычел 2 вместо "." и ".." в листинге.
let total=$(lftp "ftp://$ftpuser:$ftppass@$ftphost" -e "$ftpsettings ;
ls -R $remotemedia; quit" | wc -l)-2
Затем вы можете прочитать каждую строку, выводимую из lftp, и для тех, кто начинает «Передача», вы можете увеличить счетчик строк, вычислить процент и использовать стиль ввода «XXX», который принимает - gauge
(XXX, процент, название, XXX).
lftp "ftp://$ftpuser:$ftppass@$ftphost" -e "$ftpsettings ;
mirror -v -e $remotemedia $localmedia ; quit" |
while read word word2 filename
do if [ "$word" = Transferring ]
then let count=count+1
let percent=count*100/total
echo -e "XXX\n$percent\nDownloading $filename\nXXX"
fi
done |
whiptail --title lftp --gauge progress 10 60 0