sagod 17.08.2010 00:19
Tips & tricks — Бесконечный цикл
Бывает, напишешь парсер, а его надо запустить и оставить ненадолго, пока не закончит свои делишки. Для этого можно воспользоваться средствами bash. Подумал, что кому-то может пригодиться.Бесконечный цикл выглядит просто:
1 |
|
Кстати, всегда почему-то считал что при while true вызывается внешняя /bin/true. но простой тест переубедил:
uzix@tellur:~$ time { i=0 ;while true && << $i -lt 100000 >> ;do ((i=$i+1)) ;done }
real 0m1.966s
user 0m1.852s
sys 0m0.093s
uzix@tellur:~$ time { i=0 ;while /bin/true && << $i -lt 100000 >> ;do ((i=$i+1)) ;done }
real 1m25.821s
user 0m26.790s
sys 0m4.146s
С < >, кстати, медленнее. Ну а про /usr/bin/< и говорить не приходится...
uzix@tellur:~$ time { i=0 ;while true && << $i -lt 100000 >> ;do ((i=$i+1)) ;done }
real 0m1.966s
user 0m1.852s
sys 0m0.093s
uzix@tellur:~$ time { i=0 ;while /bin/true && << $i -lt 100000 >> ;do ((i=$i+1)) ;done }
real 1m25.821s
user 0m26.790s
sys 0m4.146s
С < >, кстати, медленнее. Ну а про /usr/bin/< и говорить не приходится...
Ну вот, я думал парсятся ссылки.
http://www.opennet.ru/docs/RUS/bash_scripting_guide/
http://www.opennet.ru/docs/RUS/bash_scripting_guide/
я обычно делаю "do wait 1;done" - чтобы комп не задрачивался если вдруг скрипт начнёт быстро выходить.
Скоро докатимся до постов вида:
«Бывает нужным иногда узнать содержимое директории, так вот, есть команда ls»
«Бывает нужным иногда узнать содержимое директории, так вот, есть команда ls»
Соглашусь. Парсер должен сам за собой следить. На крайняк можно припахать крон, который будет стартовать проверку жизни парсера и перезапуск по необходимости.
Стопудово.
Это конечно хорошо, когда человек начинает осваивать линукс, но оформлять такое в посты... уж извините...
Это конечно хорошо, когда человек начинает осваивать линукс, но оформлять такое в посты... уж извините...
P.S. Можно true заменить на :, то есть
$ while :; do ./parser; done;