Cristiano,
vc disse:
"O problema de não atualizar quando se cria novos arquivos não está no fato
de que, embora o tail -f segure o pipe aberto, o ls, por sua vez, é
executado uma única vez e não há instrução que force sua repetição?"

e eu concordo inteiramente. Naquele dia estava estudando os diálogos
--tailbox e --tailboxbg e aproveitei um script de teste que estava fazendo e
testei a minha proposta em uma condição similar, mas ela realmente não usava
o ls.

Talvez um /proc da vida sofra alguma interferencia qdo se cria um arquivo.
Vale a pena analisar e, se descobrir algo, coloque na lista. Infelizmente
não conheço bem a estrutura deste FS. Sou formado no UNIX e lá o /proc não
existe.

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- SE turma de Shell/Zenity em 26/07 - clemis...@gmail.com
- SP turma de Shell em 14/08 - www.4Linux.com.br
- Turmas fechadas em outras cidades ligue (21)8112-9988.


Em 29 de julho de 2010 11:17, Cristiano <boxferr...@gmail.com> escreveu:

>
>
> --- Em shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>,
> "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.
>
> Júlio, entendi sua sugestão, mas não consegui implementá-la.
>
> A atribuição da variável ArqNovo não está funcionando. O subprocesso (cat
> tubo) não retorna, enquanto o tail da outra ponta do pipe não é encerrado e,
> portanto, o loop não gira.
>
> Abri 3 shells no servidor. No primeiro, crei o pipe e rodei o tail. No
> segundo, rodei o cat no pipe e, em um terceiro shell, criei arquivos no
> diretório. Não funcionou. Veja o que fiz:
>
> http://pastebin.com/MrgeP056
>
> Como era esperado, o 'cat pipe' não retorna, enquanto o processo do tail
> não encerra. Mas também não recebe novos dados dele quando crio novos
> arquivos no diretório "dir_in".
>
> O problema de não atualizar quando se cria novos arquivos não está no fato
> de que, embora o tail -f segure o pipe aberto, o ls, por sua vez, é
> executado uma única vez e não há instrução que force sua repetição?
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    shell-script-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a