さて、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 は入力と出力の操作方法を再定義するため、プロセスと通信できない可能性が非常に高くなります。さらに、 irssi はそのストリームで多くのものを送信するため、特にexpect
期待できるものはありません。stdout
- 青いヘッダー。
- いくつかの空白行と、使用した場合のテキストが含まれる行
-c
(接続ログ)。 - テキストが入った別の青い線。
- プロンプト。
- ...
それだけではありません:
[(status)] _
次のように返答できます。
/connect irc.freenode.net