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