fifoモジュールの作る名前付きパイプは~/.weechat/ディレクトリの中にある。ファイル名はweechat_fifo_xxxxで、xxxxにはプロセス番号が入る。このファイルに対して適当な構文でweechatコマンドを書き込むと、結果がWeeChatに返される。結果を取り出せないのは問題あるかもしれないが、とりあえず命令だけは出せる。
$ ls ~/.weechat/weechat_fifo_* -la prw------- 1 **** **** 0 2011-02-07 16:54 /*******/.weechat/weechat_fifo_8039
例えば以下の例は、irc.freenode.#weechat バッファでhelloと入力したことと等価である。
$ echo 'irc.freenode.#weechat *hello' >~/.weechat/weechat_fifo_8039
複数のコマンドを送ることも出来る。例えば以下の例は、irc.freenode.#weechat バッファでhelloと入力し、その後にguysと入力したことと等価である。この場合はechoコマンドに-eオプションをつけ、各コマンドの間を\nで繋げる。-eオプションはエスケープ文字の解釈を行うオプション
$ echo -e 'irc.freenode.#weechat *hello\nirc.freenode.#weechat *guys' >~/.weechat/weechat_fifo_8039
名前付きオプションが何処にあるかいちいち指定するのが面倒な場合は、以下のようなシェルスクリプトで~/.weechat/weechat_fifo_*にマッチするパイプにメッセージを送るように出来る。
$ cat ./auto_weechat_command #!/bin/sh if [ $# -eq 1 ]; then for fifo in ~/.weechat/weechat_fifo_* do echo -e "$1" >$fifo done fi
前回同様、irc.freenode.#weechat バッファでhelloと入力するには、以下のようにする。
$ ./auto_weechat_command 'irc.freenode.#weechat *hello'