мне нужно интегрировать индикатор выполнения для операций на удаленном сервере по SSH.
в моей ситуации есть несколько петель, которые запускают процессы на нескольких удаленных серверах по SSH. Эти процессы запускаются с помощью certainFunction
и занять от 10 до 60 минут (в зависимости от многих непредсказуемых вещей). Поскольку процессы управляются с главного сервера, я хотел бы отобразить некоторый индикатор выполнения, основанный на времени, например, процент или бар (не точки или счетчик), который был бы указывает на общий прогресс.
это возможно?
В поисках какого-то экстравагантного решения я нашел Эдуарда Лопеса progress-bar.sh
project подходит для моих потребностей.
здесь код progress-bar.sh
:
progress-bar() {
local duration=
already_done() { for ((done=0; done<$elapsed; done++)); do printf "▇"; done }
remaining() { for ((remain=$elapsed; remain<$duration; remain++)); do printf " "; done }
percentage() { printf "| %s%%" $(( (($elapsed)*100)/($duration)*100/100 )); }
clean_line() { printf "r"; }
for (( elapsed=1; elapsed<=$duration; elapsed++ )); do
already_done; remaining; percentage
sleep 1
clean_line
done
clean_line
}
можно его использовать для моей ситуации? Я ищу чистое решение Bash без установки дополнительных пакетов.