Aloha, Esses dias eu perguntei como rolar a leitura de um arquivo texto todo em shell scripting e fui muito bem respondido pelo MrBiTS, Flavio Junior, JCNeves. Porém, o exemplo que eu dei não era muito ilustrativo da minha pergunta e achei um que toca justamente na minha dificuldade de interpretar logs e arquivos texto que modificam seu conteúdo (adicionando linhas) o tempo todo.
Eu gostaria de fazer um bot de IRC com o programa ii: http://www.suckless.org/programs/ii.html - O que esse programa faz é bem simples e poderoso. Se você acessar a rede irc.freenode.net no canal #debian, ele irá criar um diretório local de nome ~/irc.freenode.net/#debian onde haverá dois arquivos: in e out. Se dermos cat irc.freenode.net/#debian/out veremos todo o output do canal, ou seja, toda a conversa desde que o bot entrou nele. Caso queiramos enviar uma mensagem para o canal basta: echo "hello world" > ~/irc.freenode.net/#debian/in Isso permite que bots de IRC sejam feitos com a mera manipulação de arquivos texto. Porém, minha dificuldade é, como ficar lendo o arquivo 'out' para poder interpretá-lo? Para nosso BOT hipotético, eu gostaria de simular a seguinte ocasião: <KurtKraut> meubot: você gosta de shell? <meubot> KurtKraut: Sim. Pois, como diz um amigo meu, para programar em Shell não preciso de Texaco. Eu poderia fazer um loop ficar dando tail -1 o tempo todo e dar um grep em busca de 'gosta de shell'. Porém, se entre um loop e outro o bot tiver recebido duas linhas de conversa, ele só interpretaria a última. Atentem que o arquivo 'out' cresce constantemente. Enfim, alguma sugestão? Se algo não ficou claro, por favor, basta perguntar. Desde já agradeço pela atenção, Kurt Kraut
