--- Em [email protected], "Julio C. Neves" <julio.ne...@...> escreveu > > Eu acho que o assunto é bastante pertinente. Opessoal que usa shell > normalmente é admin e isso é um assunto interessante para qq admin que > mereça esse nome. > > Eu tentaria uma coisa totalmente diferente, pois acho que compromete menos o > processador. Seguinte: > > Script1 > ======= > mkfifo tubo > tail -f <(ls) > tubo > > O processo do tail permanece em waiting enquanto não se cria arquivo e qdo > criá-lo ele será enviado para o named pipe. > > Script2 > ======= > while : > do > ArqNovo=$(cat tubo) > .... > .... > done > > O named pipe precisa de um cara falando e outro ouvindo. Esse cat tubo > ligará um semáforo do S.O. e ficará esperando (sem onerar absolutamente > nada) a mudança deste semáforo que se dará qdo o outro processo "falar" do > outro lado do tubo e o que ele falou irá para a variável ArqNovo para que vc > possa trabalhar o dado da forma que vc quiser. > > Se enquanto o script2 estiver trabalhando o dado, for criado um novo > arquivo, o script1 ficará em waiting até que termine o ciclo do while e o > prg volte para o cat. > > Cara dê uma olhada em www.julioneves.com. Acho que a parte referente a named > pipe e substituição de processo [<(ls)] estão no Papo de Botequim 11. Lá tá > tudo mastigado e cheio de exemplos.
Julio, conheço o conceito dos pipes e já o utilizei outras vezes, mas nem passou pela cabeça usá-los neste caso. Gostei da ideia. O Eri me sugeriu em off usar o incron do inotify (http://inotify.aiken.cz/?section=incron&page=about&lang=en). Também é legal. Vou testar as duas soluções, obrigado.
