Jump to content

fortune (Unix)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 89.244.182.22 (talk) at 09:36, 6 February 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

fortune is a simple program that displays a random message from a database of quotations. Most distributions of fortune are bundled with files of quotations from famous people, sayings like those found on fortune cookies (hence the name), and other humorous items. fortune is predominantly found on Unix-like systems, but clients for other platforms exist as well. Often, users on text-mode Unix terminals will place this command into either their .profile or .logout files to display them at logon and logout, respectively.

Most Unix systems use a roughly equivalent set of fortunes. The fortunes dispensed are slanted heavily toward the user base of Unix, and thus contain many obscure jokes about computer science and computer programming. Other favoured sources include quotations from science fiction (Star Trek, The Cyberiad, Doctor Who, The Hitchhiker's Guide to the Galaxy, etc.), and the writings of Ambrose Bierce and Dave Barry. Most fortune collections also include a wide variety of more conventionally-sourced quotations, jokes, and other short passages. A few distributions include so-called "offensive" dicta, which require the -a or -o options to be passed for viewing (see the section "Common options" below).

One of the included fortunes, from the "goedel" collection of fortunes about fortune itself, sums up the purpose of the program:

Has anyone realized that the purpose of the fortune cookie program is to
defuse project tensions?  When did you ever see a cheerful cookie, a
non-cynical, or even an informative cookie?
        Perhaps inadvertently, we have a channel for our aggressions.  This
still begs the question of whether the cookie releases the pressure or only
serves to blunt the warning signs.

        Long live the revolution!
        Have a nice day.

Conventional versions of fortune use two files for each quotation list: a text file with quotations, each separated by the character "%" on its own line, and a random-access data file generated by the strfile(8) program. Alternative implementations, including those made for display on Web pages, typically use only the text file.

A fortune program first appeared in Version 7 Unix. The most common version on modern systems is the BSD fortune, originally written by Ken Arnold.

Common options

Several common options exist that change the way command-line versions of fortune behave:

Option Action
-a Choose from all databases, regardless of whether they are considered "offensive"
-e Make the probability of choosing a fortune file equal to that of all other files
-f Print out a list of all fortune files that would have been searched, but do not print a fortune
-i When used with -m, make regular expression searching case-insensitive
-l Use only quotations longer than the length specified with -n, or 160 characters if -n is not used
-m [pattern] Print all fortunes matching the regular expression specified in [pattern]
-n [length] Override the length used by -l and -s to determine "long" and "short" messages (default 160 characters)
-o Choose only from "offensive" databases
-s Use only quotations shorter than the length specified with -n, or 160 characters if -n is not used
-w Wait for a period of time before terminating; useful for situations in which a fortune needs to be read before the screen is cleared