Muy bien, estoy escribiendo un script de shell para abrir Irssi y luego conectarme automáticamente a freenode. ¿Debo editar el archivo en ~/.irssi/config o hay alguna manera de simular que escribo /connect irc.freenode.net? He usado echo, send y expect pero no ha funcionado. Aquí está el código que tengo hasta ahora.
irssi
echo "/connect irc.freenode.net"
Respuesta1
irssi proporciona un -c
interruptor que le permite especificar un servidor al que conectarse cuando se inicia la aplicación. Depágina de manual de irssi:
-c, --connect=SERVER
connects to SERVER
Entonces, podrías usar cualquiera de estos:
$ irssi -c irc.freenode.net
$ irssi --connect=irc.freenode.net
$ irssi --connect irc.freenode.net
La razón por la que echo
no funciona es porque no está conectado a la entrada estándar de irssi. Básicamente lo que sucede es:
- Inicias irssi, te conectas a un servidor, charlas un poco y te vas.
- Una vez que se cierre irssi (su proceso finaliza),
echo
se imprimirá su texto.
Obtendrás el mismo resultado si utilizas:
$ irssi ; echo "Hello"
Ahora, en lo que expect
a mí respecta, esto probablemente se deba al hecho de que irssi es un cliente basado en ncurses. Dado que ncurses redefine la forma en que se manipulan la entrada y la salida, es muy probable que expect
no pueda comunicarse con el proceso de todos modos. Además, no hay nada que esperar stdout
específicamente, ya que irssi envía muchas cosas en ese flujo:
- Un encabezado azul.
- Algunas líneas en blanco, algunas con texto si usó
-c
(registro de conexión). - Otra línea azul con algo de texto.
- Un simbolo.
- ...
Y no sólo:
[(status)] _
A lo que podrías responder con:
/connect irc.freenode.net