
я прочиталэтотвопрос и ответ на него, но они не отвечают на мой вопрос.
Скрипт оболочки выглядит следующим образом:
let total=$(lftp -f lftp-script-count.txt | wc -l)-2
lftp -f lftp-script.txt |
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
Thelftp-скрипт-count.txtСкрипт lftp работает хорошо:
debug 10
set ssl:verify-certificate no
open ...
user ... ...
cd ...
ls -R .
Thelftp-скрипт-count.txtСкрипт lftp работает медленно (но работает точно, хотя мне бы хотелось, чтобы он работал быстрее), и прогресс не доходит до «хлыста»:
set ssl:verify-certificate no
open ...
user ...
cd ...
mirror -P=10 . lftp-works --exclude-glob=node_modules
quit
В результате полоса прогресса отображается, но остается на 0% до конца, хотя он должен был загрузить все 251 МБ. Если я изменяю размер окна терминала, экран whiptail не перерисовывается.
Когда загрузка подходит к концу, окно с индикатором выполнения исчезает.
Мне кажется, что процент, показанный simple, lftp -f lftp-script.txt
не является глобальным. Вывод этой команды содержит, помимо процентов, такие вещи:
- Жду ответа...
- Получение данных/TLS
- Установка подключения к данным...
- Получение данных...
Пример:
Мой вопрос:Как сделать так, чтобы полоса прогресса хорошо отображала ход выполнения?
Есть ли другой CLI FTP-клиент, который показывает ход выполнения и соответствует моим требованиям, как это видно из скриптов lftp, показанных выше?
Спасибо.
Обновление 1
Осталось 2 вопроса:
- Было бы здорово, если бы я мог показать ход выполнения операции относительно общего количества файлов, которые будут скопированы, а не всех файлов, доступных для копирования, поскольку я использую
--only-newer
. - Имея в виду (1), было бы интересно узнать, почему с
--only-newer
ним скорость такая же, как и без него, когда каталог уже полностью загружен. Если бы я мог ускорить процесс, было бы здорово.