Вы меня извините, но я тут написал библиотечку для sh-скриптов для вычисления оставшегося времени выполнения (ETA).Код библиотеки:
#!/bin/sh # Функции для расчёта времени ожидаемого окончания # функции: # ETA_init # ETA # переменные: # ETA_COUNT # ETA_BEGIN_TIME # ETA_NEW_TIME # ETA_ELAPSED_TIME # ETA_EXPECTED_TIME # ETA # инициализация таймера # входные параметры: # $1 - общее количество итераций # выходные параметры: # нет function ETA_init () { if [ $# -eq 1 ]; then ETA_COUNT=$1 ETA_BEGIN_TIME=$(date +%s) else echo "Некорректный вызов функции ETA_init" > 2 ETA_COUNT=1 ETA_BEGIN_TIME=1 fi } function ETA () { if [ $# -eq 1 ]; then ETA_NEW_TIME=$(date +%s) ETA_ELAPSED_TIME=$((${ETA_NEW_TIME}-${ETA_BEGIN_TIME})) ETA_EXPECTED_TIME=$((${ETA_ELAPSED_TIME}*${ETA_COUNT}/${1})) ETA="$((${ETA_EXPECTED_TIME}-${ETA_ELAPSED_TIME})) sec." else echo "Некорректный вызов функции ETA_calculate" > 2 ETA="NaN" fi }
#!/bin/sh # подключение libeta.bash source ~/bin/libeta.bash COUNT=$(ls -1 | wc -l) n=1 ETA_init ${COUNT} for f in * do echo -ne "[${n}/${COUNT}] $f... " sleep 2 ETA $n echo -e "done (ETA=${ETA} sec.)" n=$((${n}+1)) done
anonymous(*) (2013-11-14 20:56:38) Отредактировано anonymous по причине "не указана"
Я не понял как оно выполняет rm -rf
Изменил формат оставшегося времени. Теперь выводится в виде [hh:]mm:ss
Re:libeta.sh
Я не понял как оно выполняет rm -rf
Mozilla/5.0 (X11; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0