#!/bin/sh exec 3<>/dev/tcp/chat.freenode.net/6667 send() { echo -e "$*" >&3 } parse() { shift echo -n "$*" | tr -d "\n\r" } parse2() { shift $1 echo -n $1 | tr -d "\n\r" } get_name() { parse2 1 `echo $1 | tr -d ":" | tr "!" " "` } send_fortune() { fortune -as | tr "\n" " " } send NICK send USER name hostname hostname :realname #send PASS send NS identify chan=\#imagi-nation send JOIN $chan while true; do read -u 3 SENDER ACTION RECIPIENT MESSAGE echo $SENDER $ACTION $RECIPIENT $MESSAGE case ` parse 1 ${MESSAGE}` in *!speak) send PRIVMSG $chan :`parse ${MESSAGE}` ;; *@action) echo -e "PRIVMSG $chan :\0001ACTION `parse $MESSAGE`\0001" >&3 ;; *VERSION*) #if [ '$RECIPIENT' = 'tragicz' ] ; then #echo -e "NOTICE `get_name ${SENDER}` :\0001VERSION Suck my balls I was written in bash.\0001" >&3 send "NOTICE `get_name ${SENDER}` :`send_fortune`" #fi ;; *DIE*) send QUIT You killed me exit ;; *) esac done