В скрипте bash вызывается долго выполняющаяся программа, вывод которой перенаправляется в файл. Выглядит это так: появляется сообщение о выполнении программы и замирает на минуту-другую. Нужна утилита, которая мониторит выполнение программы и отображает индикатор.
Хотя бы не с прогрессбаром каким-нибудь, а просто чтобы шевелилось что-то в терминале.
LinuxForum.Fans
Утилита индикации выполнения процесса
Автор: fragment
8 сообщений
1000 просмотров
tail -f на файл в который что-то выводится, но это, конечно, грубо и будет работать если программа закрывает файл периодически.
Нет, это не годится. Нужно чтобы в терминале не было сотен строк вывода.
fragment, напиши скрипт или однострочник, который с определённым интервалом проверяет число строк в файле и выводит информацию об этом, можешь как-то так:
text
echo -ne '##### (33%)\r'
sleep 1
echo -ne '############# (66%)\r'
sleep 1
echo -ne '####################### (100%)\r'
echo -ne '\n'
Ещё была какая-то утилите, которая отслеживала сколько данных прошло через "|" (pipe), если в твою программу данные подаются так, то подойдёт, будет прогрессбар, погугли сам.
В скрипте bash вызывается долго выполняющаяся программа, вывод которой перенаправляется в файл. Выглядит это так: появляется сообщение о выполнении программы и замирает на минуту-другую. Нужна утилита, которая мониторит выполнение программы и отображает индикатор.
Хотя бы не с прогрессбаром каким-нибудь, а просто чтобы шевелилось что-то в терминале.
А это не подойдет? https://help.gnome.org/users/zenity/stable/progress.html.ru
А это не подойдет? https://help.gnome.org/users/zenity/stable/progress.html.ru
Тогда уж не zenity, а kdialog. Так как fragment использует KDE, насколько мне известно. Если в терминале - то dialog.
Ещё была какая-то утилите, которая отслеживала сколько данных прошло через "|" (pipe),
pv?
tail -f не подойдёт? Она выводит хвост файла, но выводит вечно. 10 строк сразу, и ждёт, пока поменяется.Хотя бы не с прогрессбаром каким-нибудь, а просто чтобы шевелилось что-то в терминале.
Войдите или зарегистрируйтесь, чтобы ответить.