IrssiにはBashを使用する

IrssiにはBashを使用する

さて、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

関連情報