--- Em [email protected], Alain Mouette <ala...@...> escreveu > > Vou recomeçar toda minha explicação de novo, tá difícil... > > Vamos simular meu aplicativo com este script: > > #!/bin/bash > echo mensagem1 > sleep 2 > echo @mensagem2 > > Eu testei todas as sujestões dadas, e todas funcionam e não resolvem. Eu > preciso ver o mensagem1 **NA HORA** e a segunda (sem o @) na hora dela. > Todas as sugestões mostram as duas juntas depois...
Alain, a sugestão para usar named pipe + tail -f + tr -d funciona sim. Ao menos aqui em meus testes funcionou. Veja: http://pastebin.com/quhGqwda Note que eu coloquei tanto o tail quanto o próprio script para rodar em background (através do '&' no final) para poder ter as respostas no mesmo terminal. Observe que após executar o script na linha 22, ele foi para segundo plano e o prompt do shell retornou para mim, onde eu executei um 'date'. Cinco segundos depois de chamar o script, a primeira volta do laço foi exibida, sem as letras 's' e 't'. Retornei ao prompt e continuei intercalando o 'date' com as saídas do script que rodava em segundo plano, mostrando a mensagem filtrada. Se eu executasse o script em primeiro plano, a saída ficaria assim: cristi...@mga0-sgdbsrv:/tmp> ./teste.sh > npipe Tee 1, imeamp: Tue May 4 15:08:40 BRT 2010. Proximo ee em 30 egundo Tee 2, imeamp: Tue May 4 15:09:10 BRT 2010. Proximo ee em 30 egundo Tee 3, imeamp: Tue May 4 15:09:40 BRT 2010. Proximo ee em 30 egundo Tee 4, imeamp: Tue May 4 15:10:10 BRT 2010. Proximo ee em 30 egundo Tee 5, imeamp: Tue May 4 15:10:40 BRT 2010. Proximo ee em 30 egundo cristi...@mga0-sgdbsrv:/tmp> Apenas coloquei em segundo plano para que eu pudesse executar outros comandos no shell enquanto esperava pela saída do script e para que você pudesse se certificar disso. Testou esta solução? O que obteve?
