對 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

相關內容