1 (23.01.2012 11:47:33 отредактировано tolik_577)

есть внешнее приложение "start" выдающее в терминал строки.
требуется : когда приложение выдаст строку с содержанием например "CCCOOOLLL" , запустить скрипт
ну пытаюсь так :

if [ -n $(./start | grep CCCOOOLLL &) ]
    then
    echo "запускаем скрипт "
fi 

соответственно вопрос , наверное координально что-то нетак?

собственно ответ, чтоб вниз нелазить
Fat-Zer пишет:

./start | while read STRING; do
  [ $(expr match "$STRING" '.*CCCOOOLLL.*') -ne 0 ] && echo "запускаем скрипт "
done

Жизнь коротка  - угребись !

2

./start | grep CCCOOOLLL > /dev/null && echo "запускаем скрипт "
Был, был и весь вышел...

3

tolik_577 пишет:

if [ -n "$(./start | grep CCCOOOLLL &)" ]

кавычек нехватает
и & - лишнее

95% процентов проблем находятся между клавиатурой и стулом.

4 (18.01.2012 23:54:29 отредактировано tolik_577)

все бы хорошо, но только "запускаем скрипт" появляется после завершения работы ./start , а мне бы сразу после появления в строке CCCOOOLLL


еще такой момент , а можно как нить так извернуться чтобы при скрипт выполнялся не единожды, а при каждом появлении CCCOOOLLL ?
спасибо за ответы

Жизнь коротка  - угребись !

5 (18.01.2012 23:41:14 отредактировано zenon)

tolik_577, а как часто CCCOOOLLL может вообще появиться?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

6

tolik_577, что должен сделать скрипт, запущенный при появлении строки CCCOOOLLL, если появилась новая строка CCCOOOLLL, а он ещё не отработал предыдущий вызов?

Был, был и весь вышел...

7 (19.01.2012 01:35:12 отредактировано tolik_577)

появляется редко , скрипт полюбому успеет отработать

скрипт будет делать архивные копии файлов размером несколько байт

Жизнь коротка  - угребись !

8

Ну так целиком if [ -n "$(./start | grep CCCOOOLLL &)" ] в крон и скрипт выполнится, и проверит что на выхлопе.
Или же более подробно опиши, в тч что там за скрипт start

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

9

Пошел я по извратному пути,но вот это если допилить работает,
может все таки подскажете ченить без внешних файлов поадекватнее вариант

./start | grep CCCOOOLLL > t.tmp &    # кидаем в файл идем дальше

while true ; do   # из цикла надо вывалиться когда завершиться процесс "start", но пока так
    inotifywait t.tmp         # ждем чтоб файл изменился , ну тут можно после условие проверки последней строки файла
    echo "запускаем скрипт"
done

Жизнь коротка  - угребись !

10

Огласил бы сам скрипт start, может в него проверку. и запихнуть? И в кроне на еже-минут-час (как надо) повтор. А то не понятно.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

11

tolik_577 пишет:

еще такой момент , а можно как нить так извернуться чтобы при скрипт выполнялся не единожды, а при каждом появлении CCCOOOLLL ?

тогда лучше делать по-другому, как-то так:

./start | while read STRING; do
  [ $(expr match "$STRING" '.*CCCOOOLLL.*') -ne 0 ] && echo "запускаем скрипт "
done
95% процентов проблем находятся между клавиатурой и стулом.

12 (19.01.2012 01:38:03 отредактировано tolik_577)

История:
***CENSOR***

Жизнь коротка  - угребись !

13

Fat-Zer пишет:
./start | while read STRING; do
  [ $(expr match "$STRING" '.*CCCOOOLLL.*') -ne 0 ] && echo "запускаем скрипт "
done

Спасибо Fat-Zer , то что доктор прописал )))

Жизнь коротка  - угребись !

Пожалуйста подскажите http://linuxforum.ru/viewtopic.php?pid=244253#p244253

Спасибо, Вы очень любезны.