есть внешнее приложение "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
tolik_577, что должен сделать скрипт, запущенный при появлении строки CCCOOOLLL, если появилась новая строка CCCOOOLLL, а он ещё не отработал предыдущий вызов?
Ну так целиком if [ -n "$(./start | grep CCCOOOLLL &)" ] в крон и скрипт выполнится, и проверит что на выхлопе.
Или же более подробно опиши, в тч что там за скрипт start
Пошел я по извратному пути,но вот это если допилить работает,
может все таки подскажете ченить без внешних файлов поадекватнее вариант
./start | grep CCCOOOLLL > t.tmp & # кидаем в файл идем дальше
while true ; do # из цикла надо вывалиться когда завершиться процесс "start", но пока так
inotifywait t.tmp # ждем чтоб файл изменился , ну тут можно после условие проверки последней строки файла
echo "запускаем скрипт"
done