These are simple IRC clients, so they do not handle non-simple cases. If source is already used by another client on the IRC server a nick collision occurs, and no message will be sent. Similarly passwords, NickServ registration, network timeouts, rate limits, intentionally uncooperative servers, and many other errors, specific configurations, and exceptional conditions are not handled.
send-irc [destination [source]]sends a single line message to destination from source.
For historical reasons, if a multi-line message is given, it will first remove any text that appears before the first blank input line, then replace all newlines with spaces (the historical reason is that it is meant to send the bodies of email messages). If there are multiple lines but none of them are blank, then no text is removed, and newlines are simply replaced with spaces.
send-irc-long [-destination #destination]sends a multi-line message read from STDIN as a series of IRC messages. The source, destination, IRC server host and port are given as command-line arguments.
By default, send-irc-long JOINs an IRC channel before sending messages to it. This behavior can be controlled using the -join option: a false value (0) indicates the channel should not be joined, while a true value (non-zero) indicates the channel shall be joined. When sending messages to other IRC nicks (as opposed to channels), the -join flag is mostly irrelevant, except that the IRC server will generate a few extra error messages.
# Replace "..." with commands to generate text to send on IRC ... | while read line; do echo "$line" sleep 2 done | send-irc-long -source ... # Replace "..." above with IRC nick and other connection details