sh скрипт

Тема в разделе "Другие языки", создана пользователем poolk, 28 окт 2010.

Модераторы: Цукер
  1. poolk

    poolk Создатель

    Регистр.:
    12 июн 2006
    Сообщения:
    40
    Симпатии:
    17
    Всем привет.
    Пните, пожалуйста, в нужную сторону - куда смотреть\копать...
    Проблема вот в чем: необходим sh скрипт, который будет выполняться вечно (до кнтрл+С), каждую секунду он запускает прогу с параметрами: "прога $1 $2 $3". Параметры лежат в тхт файле рядом, разделенные табом.
    Функционал примитивный, понимаю, но как написать это дело именно на sh - не знаю=( Не судите строго...
     
  2. T0nus

    T0nus Создатель

    Регистр.:
    30 янв 2008
    Сообщения:
    11
    Симпатии:
    0
    Вот небольшой скрипт, запускающий стандартную команду date с тремя аргументами из внешнего файла date_options.txt, где они разделены табуляцией:
    Код:
    INFILE="date_options.txt"
    while [ 1 == 1 ]
    do
    	date `awk -F"[\t]" '{print(" ", $1, $2, $3)}' < $INFILE`
    done 
    
     
  3. help40

    help40

    Регистр.:
    1 окт 2006
    Сообщения:
    252
    Симпатии:
    26
    я конечно не знаю какая у тебя прога "прога $1 $2 $3"
    не знаю и на сколько критически етот интервал 1 сек.

    но если sh скрипт будет ждат 1 сек и потом запускать .... ждат и запускат ...
    и если время изполнение прогу будет больше 1 сек , то тогда твой будуший скрипт не будет работать как надо

    можно добавит несколько записи в crontab .... и тогда будешь уверен что програма запускается каждая секунда ....
     
  4. poolk

    poolk Создатель

    Регистр.:
    12 июн 2006
    Сообщения:
    40
    Симпатии:
    17
    можно ж в фоне запускать, а минимальный лимит в кроне вроде 1мин(
     
  5. help40

    help40

    Регистр.:
    1 окт 2006
    Сообщения:
    252
    Симпатии:
    26
    eto primer dlq crontab , kajdoi 20 sek , konechno za kajdaq sekunda ... poluchaetsya ****

    (za translit izvinite , net kirilica na etot komp)

    Код:
    */1 * * * * /path/to/my/script
    */1 * * * * sleep 20 && /path/to/my/script
    */1 * * * * sleep 40 && /path/to/my/script
    
     
  6. nagual

    nagual Постоялец

    Регистр.:
    17 фев 2009
    Сообщения:
    65
    Симпатии:
    3
    B sh скрипте тоже sleep(1) можно добавить но правильнее через крон это делать.
     
  7. Allary

    Allary Писатель

    Регистр.:
    3 ноя 2008
    Сообщения:
    6
    Симпатии:
    1
    Сталкивался с подобной проблемой, крон не устраивал нужно было что-то выполнять раз в 3 секунды а у крона минимум минута

    Linux
    Код:
    #!/bin/bash
    GOON=1
    while [ $GOON ]; do
    
    php /var/home/webroot/cron_dispatcher.php
    
    sleep 3
    done
    
    FreeBSD
    Код:
    #!/bin/sh
    while sleep 3
    do
    
    php /var/home/webroot/cron_dispatcher.php
    
    done
    
    З.Ы. Для непонятливых - sleep 3 это задержка 3 секунды а строка "php /var/home/webroot/cron_dispatcher.php" это и есть команда