对 Irssi 使用 Bash

对 Irssi 使用 Bash

好吧,我正在编写一个 shell 脚本来打开 Irssi,然后自动连接到 freenode。我应该编辑 ~/.irssi/config 中的文件还是有办法模拟我输入 /connect irc.freenode.net ?我已经使用了 echo、send 和 Expect 但没有起作用。这是我到目前为止的代码。

irssi
echo "/connect irc.freenode.net"

答案1

irssi 提供了一个-c开关,允许您在应用程序启动时指定要连接的服务器。从irssi 的手册页:

-c, --connect=SERVER
    connects to SERVER

因此,您可以使用其中之一:

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

之所以echo不起作用是因为它没有连接到irssi的标准输入。基本上,发生的事情是:

  • 你启动 irssi,连接到服务器,聊一会儿,然后离开。
  • 一旦 irssi 关闭(其进程终止),您的echo文本将被打印。

如果您使用以下命令,您将得到相同的结果:

$ irssi ; echo "Hello"

现在,就目前而言expect,这可能是因为 irssi 是基于 ncurses 的客户端。由于 ncurses 重新定义了操作输入和输出的方式,因此很可能expect无论如何都无法与进程通信。此外,没有什么stdout特别值得期待的,因为 irssi 在该流上发送了很多东西:

  • 蓝色标题。
  • 一些空行,如果您使用的话,有些带有文本-c(连接日志)。
  • 另一条蓝线,其中有一些文字。
  • 一个提示。
  • ...

不仅仅是:

[(status)] _

您可以回复:

/connect irc.freenode.net

相关内容