Наваял вот такую полезную для себя хрень: отслеживать прогресс времени для больших интервалов (прогресс а-ля wget). Давно хотел. Мне часто интересно проследить ход времени (сколько прошло, сколько осталось) с такой-то даты по такую-то, например с 20040111 по 20040511. Кто то может захотеть отследить прогресс года (20040101..20050101) или месяца. Всего-то около 30 строчек bash. Из редкого требует bc (для вещественной арифметики). Прога автоматом растянет прогресс на весь экран. Процесс инсталяции: echo "/path/to/progress" >> ~/.bash_profile :)) Наверняка еще захотите поменять первую и конечную даты (D0 и D1), их можно либо в скриптике поменять, либо через env передавать. Потому как хардкоднутые даты по умолчанию мои и наврядли имеют для кого-то смысл :) Пример вывода (при D0=20040101, D1=20050101, TODAY=20041001, ширина консоли: 80): 20040101>==============================================................<20 050101 #!/bin/bash D0="${D0:-20040111}" D1="${D1:-20040511}" strlen() { echo -n "$1" | awk '{ print length }'; } D0_NORM=$(date -d "$D0" +%s) D1_NORM=$(date -d "$D1" +%s) TODAY_NORM=$(date -d $(date +%Y%m%d) +%s) # used for debugging #TODAY_NORM=$(date -d "$(date -d "$D0") + 10 days" +%s) #TODAY_NORM=$(date -d "$(date -d "$D1") + 1 days ago" +%s) # sanity checks if [ "$D0_NORM" -gt "$D1_NORM" ]; then D0_NORM=$D1_NORM; fi if [ "$TODAY_NORM" -lt "$D0_NORM" -o "$TODAY_NORM" -gt "$D1_NORM" ]; then TODAY_NORM=$D1_NORM; fi COLS=$(stty size | cut -d' ' -f2) AVAIL_COLS=$[$COLS-(`strlen "$D0"`+1+`strlen "$D1"`+1)] DAYS_DELTA=$[($D1_NORM-$D0_NORM)/(60*60*24)] PROGRESS_DAYS=$[($TODAY_NORM-$D0_NORM)/(60*60*24)] DAYS_PER_COL=$(echo "${DAYS_DELTA}.0/$AVAIL_COLS" | bc -l) PROGRESS_COLS=$(echo "$PROGRESS_DAYS/$DAYS_PER_COL" | bc) echo -n "$D0>" for i in `seq 1 $PROGRESS_COLS`; do echo -n "=" done for i in `seq 1 $[$AVAIL_COLS-$PROGRESS_COLS]`; do echo -n "." done echo -n "<$D1"
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Создание видео из файлов zoneminder (2012)
- Форум Zimbra архивация старых сообщений (2016)
- Новости Progress 8.3 (1999)
- Форум GPG, progress bar. (2017)
- Форум copy with progress (2009)
- Галерея Work in progress (2009)
- Галерея LaTeX in progress (2008)
- Форум Progress Developers needed (2001)
- Форум KDE Caledonia progress bar (2013)
- Форум DNA backup progress: 50% (2023)