Use Bash para Irssi

1

Tudo bem, estou escrevendo um script shell para abrir o Irssi e depois conectar-me automaticamente ao freenode. Devo editar o arquivo em ~ / .irssi / config ou existe uma maneira de me simular digitando / conectando o irc.freenode.net? Eu usei eco, envie e espere, mas não funcionou. Aqui está o código que tenho até agora.

irssi
echo "/connect irc.freenode.net"
    
por is-cj 15.10.2014 / 18:12

1 resposta

1

O irssi fornece uma opção -c que permite especificar um servidor para se conectar quando o aplicativo é iniciado. Da página man do irssi :

-c, --connect=SERVER
    connects to SERVER

Então, você poderia usar apenas um destes:

$ irssi -c irc.freenode.net
$ irssi --connect=irc.freenode.net
$ irssi --connect irc.freenode.net

O motivo pelo qual echo não funciona é porque ele não está conectado à entrada padrão do irssi. Basicamente, o que acontece é:

  • Você inicia o irssi, conecta-se a um servidor, tem uma pequena conversa, sai.
  • Quando o irssi for fechado (seu processo termina), o texto echo será impresso.

Você terá o mesmo resultado se usar:

$ irssi ; echo "Hello"

Agora, no que diz respeito ao expect , isso provavelmente se deve ao fato de o irssi ser um cliente baseado em ncurses. Como ncurses redefine a forma como a entrada e a saída são manipuladas, é muito provável que expect não possa se comunicar com o processo de qualquer maneira. Além disso, não há nada a esperar em stdout especificamente, pois o irssi envia muitas coisas nesse fluxo:

  • Um cabeçalho azul.
  • Algumas linhas em branco, algumas com texto, se você usou -c (log de conexão).
  • Outra linha azul com algum texto.
  • Um aviso.
  • ...

E não apenas:

[(status)] _

Você pode responder com:

/connect irc.freenode.net
    
por 15.10.2014 / 18:22

Tags