Ваши примеры и описание непоследовательны. Движение списком 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
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
Этого должно быть достаточно для запущения Вас:
#!/bin/bash
for i in {001..100}; do
sleep 1
printf "\r $i"
done
Используя \r
escape-последовательность возвращает строку запуску без новой строки. Это позволяет Вам обновлять вывод, не имея сотен строк вывода. При помощи этой основы Вы могли найти способ медленно распечатать стрелку такой как =>25% ==>50% ===>75%
вместо того, чтобы просто распечатать число. Вы могли сделать это очень простым способом при помощи если затем логика для распечатывания определенного количества = в зависимости от размера числа.
В случае, если Вы хотите видеть прогресс процесса копии файла, можно просто использовать
pv source_file > destination_file
или
rsync --progress source_file destination_file
вместо cp
команда
Вот перемещения курсора использования, которые перепишут строку для показа обратного отсчета:
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."