|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 05 Jan 2007 20:24:30 To : Dmitry E Oboukhov Subject : Re: shell -------------------------------------------------------------------------------- Dmitry E. Oboukhov <Dmitry.E.Oboukhov@p151.f75.n5004.z2.fidonet.org> wrote: DEO> есть скрипт который делает паузы в своей работе. DEO> необходимо индицировать как-то сколько времени осталось DEO> до того как будет сделано следующее действие. DEO> сперва сделал что-то вроде: DEO> show_pause() { for sec in `seq -w 1 $1|sort -r`; do echo DEO> -ne "\rОсталось ждать $sec " sleep 1 done echo DEO> "Дождались " } DEO> только как выяснилось на больших паузах сей метод дает DEO> приличные ошибки (на 8-ми часах около 10 минут ошибки на DEO> Р3-500) DEO> а как бы и индикацию организовать и в точности не DEO> проиграть и на Perl не переходить? По моему, в при больших интервалах имеет смысл ожидать не n секунд, а до определенного момента, вычисленного как now+n секунд. Соответственно, man date на предмет формата %s и man bash на предмет шелловской арифметики. Получится что-то вроде end=`date +%s -d now+$1sec` while [ `date +%s` -lt $end ]; do echo -ne "\r осталось ждать $[$end -`date +%s`] секунд" sleep 1 done Здесь ошибка получится плюс-минус секунда. Хотя для маленьких интервалов это решение явно более громоздкое и неэффектвное. -- --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1517851d97d37.html, оценка из 5, голосов 10
|