LINUX.ORG.RU
ФорумAdmin

Не могу написать скрипт


0

0

Друзья выручайте. Не могу написать скрипт.

Нужно что бы он генерировал файлы и складывал в каталог. Если в катологе в данный момент есть 5 файлов, то нужно приостановиться. Как только файлов стало меньше, сгенерить еще (до 5)... Нужно срочно!!!

anonymous

#! /bin/csh

@ BOUND = 5
set DIR = "/tmp/1"

mkdir -p $DIR
cd $DIR

@ num = 0
alias PAUSE        'sleep 5'
alias NUM_FILES    'set \!:1 = `find . -maxdepth 1 -type f | wc -l`'
alias CREATE_FILES '@ b = \!:1 + 1;           \
                    while ($b < $BOUND)       \
                    mktemp -p . file.XXXXXX;  \
                    @ b++;                    \
                    end                       '



while (1)
    NUM_FILES num
    if ($num < $BOUND ) then
        CREATE_FILES $num
    endif
    PAUSE
end

sdio ★★★★★
()

Уточню: Есть скрипт, который обращается к базе, выдергивает данные из определенного столбца и на основе их генерит файлы. Есть условие: Когда количество файлов превышает к примеру 5, то скрипт должен уснуть не надолго.

anonymous
()
Ответ на: комментарий от sdio

>Измени CREATE_FILES и все тебе будет.

for i in $( echo "select $COL from $TABLE" | mysql --skip-column-names -u $USER $BASE ); do echo " данные из таблицы

" > /tmp/id/$ID done

Нужно вот это вставить. У меня не получается. В общем вот что нужно конкретно. Как приостановить выполнение, если в /tmp/id скопилось 5 файлов. И при этом не потерять строку из таблицы, что бы данные не повторились. Как только файлов стало <5, продолжить выполнение.

anonymous
()
Ответ на: комментарий от anonymous

> Как приостановить выполнение, если в /tmp/id скопилось 5 файлов. И при этом не потерять строку из таблицы, что бы данные не повторились. Как только файлов стало <5, продолжить выполнение.

Измени 5 на 4, и проверяй количество файлов до того, как считаешь из базы. Если файлов меньше 5, читай базу, пиши файл.

ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.