Progressbar в ударе для визуализации времени для ожидания

Ваши примеры и описание непоследовательны. Движение списком sequence_2_0001.hmf, sequence_2_0101.hmf, sequence_2_0201.hmf, …, можно использовать ? подстановочный знак для соответствия любому символу.

get sequence_2_??01.hmf

Можно использовать наборы символов для соответствия одному файлу каждые 20 (например). [02468] соответствия любая из цифр 0, 2, 4, 6 или 8.

get sequence_2_[02468]?01.hmf
6
08.06.2014, 19:41
4 ответа
while true;do echo -n .;sleep 1;done &
sleep 10 # or do something else here
kill $!; trap 'kill $!' SIGTERM
echo done

это будет запускать бесконечный цикл с условием продолжения что echos счетчик каждую секунду, выполняемый в фоновом режиме.

Вместо sleep10 управляйте выполняет любую команду, которую Вы хотите.

Когда та команда закончит выполняться, это уничтожит последнее задание, работающее в фоновом режиме (который является бесконечным циклом с условием продолжения),

источник: https://stackoverflow.com/a/16348366/1069083

Можно использовать различные циклы с условием продолжения вместо этого, например, счетчик как это:

while :;do for s in / - \\ \|; do printf "\r$s";sleep 1;done;done
14
27.01.2020, 20:20

Этого должно быть достаточно для запущения Вас:

#!/bin/bash

for i in {001..100}; do
    sleep 1
    printf "\r $i"

done

Используя \r escape-последовательность возвращает строку запуску без новой строки. Это позволяет Вам обновлять вывод, не имея сотен строк вывода. При помощи этой основы Вы могли найти способ медленно распечатать стрелку такой как =>25% ==>50% ===>75% вместо того, чтобы просто распечатать число. Вы могли сделать это очень простым способом при помощи если затем логика для распечатывания определенного количества = в зависимости от размера числа.

6
27.01.2020, 20:20

В случае, если Вы хотите видеть прогресс процесса копии файла, можно просто использовать

pv source_file > destination_file

или

rsync --progress source_file destination_file

вместо cp команда

1
27.01.2020, 20:20

Вот перемещения курсора использования, которые перепишут строку для показа обратного отсчета:

c=5 # seconds to wait
REWRITE="\e[25D\e[1A\e[K"
echo "Starting..."
while [ $c -gt 0 ]; do 
    c=$((c-1))
    sleep 1
    echo -e "${REWRITE}$c"
done
echo -e "${REWRITE}Done."
1
27.01.2020, 20:20

Теги

Похожие вопросы