cowsay
| Original author(s) | Tony Monroe |
|---|---|
| Stable release | 3.03 / May 28, 2000 |
| Written in | Perl |
| Operating system | Cross-platform |
| Available in | English |
| License | Artistic License / GNU General Public License |
| Website | www.nog.net/~tony/warez/cowsay.shtml |
cowsay is a program which generates ASCII pictures of a cow with a message.[1] It can also generate pictures using pre-made images of other animals. There is also a related program called cowthink, with cows with thought bubbles rather than speech bubbles.
_______________________
< Typical cowsay output! >
-----------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
.cow files for Cowsay exist which are able to produce different variants of "cows", with different kinds of "eyes", and so forth.[2] It is sometimes used on IRC, desktop screenshots, and in software documentation. It is more or less a joke within hacker culture, but has been around long enough that its use is rather widespread. In 2007 it was highlighted as a Debian package of the day.[3]
Cowsay is written in the Perl programming language, and as such is easily adaptable to system tasks in Unix, such as telling users their home directories are full, they have new mail, et cetera. Additionally, it is quite adaptable to the Common Gateway Interface.[4]
Contents |
[edit] Example
The Unix command fortune can also be piped into the cowsay command:
baldur@baldur-desktop:~$ fortune | cowsay
________________________________________
/ You have Egyptian flu: you're going to \
\ be a mummy. /
----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
And using the parameter -f followed by tux, one can exchange the cow with Tux, the Linux mascot:
baldur@baldur-desktop:~$ fortune | cowsay -f tux
_________________________________________
/ You are only young once, but you can \
\ stay immature indefinitely. /
-----------------------------------------
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/
[edit] Parameters
| Option | Purpose |
|---|---|
| -n | Disables word wrap, allowing the cow to speak FIGlet or to display other embedded ASCII art. Width in columns becomes that of the longest line, ignoring any value of -W |
| -W | Specifies width of the speech balloon in columns, i.e. characters in a monospace font. Default value is 40. |
| -b | “Borg mode”, uses == in place of oo for the cow′s eyes. |
| -d | “Dead”, uses XX. |
| -g | “Greedy”, uses $$. |
| -p | “Paranoid”, uses @@. |
| -s | “Stoned”, uses ** to represent bloodshot eyes, plus a descending U to represent an extruded tongue. |
| -t | “Tired”, uses --. |
| -w | “Wired”, uses OO. |
| -y | “Youthful”, uses .. to represent smaller eyes. |
| -e eye_string | Manually specifies the cow′s eye-type, e.g. cowsay -e ^^ (see Eastern-style emoticon).[5] |
| -T tongue_string | Manually specifies the cow′s tongue shape, e.g. cowsay -T \(\) for a pair of parentheses.[5] |
| -f cowfile | Specifies a .cow file from which to load alternative ASCII art. Accepts both absolute file-paths and those relative to the environment variable COWPATH. |
| -l | Lists the names of available cow-files in the COWPATH directory instead of displaying a quote. |
[edit] List all forms
On Linux/Unix you can list all the available forms of cowsay beasts using this command:
cowsay -l | grep -v "^Cow" | sed -e "s% %\n%g" | sed -e "s%\(.*\)%cowsay -f \1 Now I am a \1%" | sh | less
[edit] References
- ^ Linux Gazette Issue 67
- ^ "Richard Stallman for cowsay". http://crunchbang.org/archives/2007/10/05/a-virtual-richard-stallman-for-cowsay-hack/.
- ^ "cowsay: a configurable talking and thinking cow". Debian Package of the Day. October 28, 2007. http://debaday.debian.net/?m=200710.
- ^ Serverwatch Article
- ^ a b Characters other than printable in C0 controls and basic Latin (U+0021–U+007E) will not display properly as these parameters accept only the first two bytes of input value. Using a pre-defined cow-face will over-ride any value of -e and -T.