好吧,我正在編寫一個 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