URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9850
[ Назад ]

Исходное сообщение
"скрипт для проверки наличия файла"

Отправлено effa , 25-Мрт-14 18:42 
Есть каталог с множеством подкаталогов:
1000
1002
1003

В каждом каталоге лежит две картинки, которые будут склеиваться другим скриптом и склееные выводиться на печать.
Иногда появляются новые подкаталоги с новыми картинками.
Задача печатать картинки из каждого каталога только один раз.

Скрипт должен запускаться по крону раз в n минут и делать следующее:

1. Заходим в каждый из каталогов, проверяем наличие файла 1-2.jpg
2. Если нет, то запускаем скрипт(уже готовый) print.sh который его делает и отправляет на печать.
3. Если есть, то пропускаем и идем в следующий каталог.

Подскажите как это правильно сделать?


Содержание

Сообщения в этом обсуждении
"скрипт для проверки наличия файла"
Отправлено Andrey Mitrofanov , 25-Мрт-14 18:58 
> Подскажите как это правильно сделать?

Зависит от определения "правильно" для целей этой задачи.


"скрипт для проверки наличия файла"
Отправлено babaj , 25-Мрт-14 20:03 

> Подскажите как это правильно сделать?

гдето так...
find */ -name 1-2.jpg


"скрипт для проверки наличия файла"
Отправлено erera22 , 25-Мрт-14 21:35 
А на сколько велико "множество"? Кондовый вариант с перебором:

#!/bin/bash

img1="1.jpg"
img2="2.jpg"
root="/my/path"

cd "$root"
for i in $(ls)
do
   if [ ! -e "$root/$i/$img1" ] || [ ! -e "$root/$i/$img2"]; then
      /path/to/script/print.sh
   fi
done

Если критерием запуска print.sh является то, что нет ниодного файла (исключаем ситуацию, когда есть один из 1-2.jpg), то можно и find использовать, что ускорит процесс.


"скрипт для проверки наличия файла"
Отправлено effa , 26-Мрт-14 13:33 
спасибо! вот это хорошо подходит!