FORTUNE(6)

NAME
fortune - print a random, hopefully interesting, adage

SYNOPSIS
fortune [-aDefilosw] [-m pattern] [ [N%] file/directory/all]

DESCRIPTION
When fortune is run with no arguments it prints out a random epigram. Epigrams are divided into several categories, where each category is subdivided into those which are potentially offensive and those which are not. The options are as follows:

-a  Choose from all lists of maxims, both offensive and not. (See the -o option for more information on offensive fortunes.)

-D  Enable additional debugging output. Specify this option multiple times for more verbose output. Only available if compiled with -DDEBUG.

-e  Consider all fortune files to be of equal size (see discussion below on multiple files).

-f  Print out the list of files which would be searched, but do not print a fortune.

-l  Long dictums only.

-m pattern
    Print out all fortunes which match the regular expression pattern. See regex(3) for a description of patterns.

-o  Choose only from potentially offensive aphorisms. Please, please, please request a potentially offensive fortune if and only if you believe, deep down in your heart, that you are willing to be offended. (And that if you are not willing, you will just quit using -o rather than give us grief about it, okay?)

        ... let us keep in mind the basic governing philosophy
        of The Brotherhood, as handsomely summarized in these words:
        we believe in healthy, hearty laughter -- at the expense of
        the whole human race, if needs be.
        Needs be.
                                   --H. Allen Smith, "Rude Jokes"

-s  Short apothegms only.

-i  Ignore case for -m patterns.

-w  Wait before termination for an amount of time calculated from the number of characters in the message. This is useful if it is executed as part of the logout procedure to guarantee that the message can be read before the screen is cleared.

The user may specify alternate sayings. You can specify a specific file, a directory which contains one or more files, or the special word all which says to use all the standard databases. Any of these may be preceded by a percentage, which is a number N between 0 and 100 inclusive, followed by a ‘%’. If it is, there will be an N percent probability that an adage will be picked from that file or directory. If the percentages do not sum to 100, and there are specifications without percentages, the remaining percent will apply to those files and/or directories, in which case the probability of selecting from one of them will be based on their relative sizes.

As an example, given two databases funny and not-funny, with funny twice as big, saying

    fortune funny not-funny

will get you fortunes out of funny two-thirds of the time. The command

    fortune 90% funny 10% not-funny

will pick out 90% of its fortunes from funny (the “10% not-funny” is unnecessary, since 10% is all that is left). The -e option says to consider all files equal; thus

    fortune -e funny not-funny

is equivalent to

    fortune 50% funny 50% not-funny

ENVIRONMENT

FORTUNE_PATH
    The search path for the data files. It is a colon-separated list of directories in which fortune looks for data files. If not set it will default to /usr/share/games/fortune:/usr/local/share/games/fortune. If none of the directories specified exist, it will print a warning and exit.

FORTUNE_SAVESTATE
    If set, fortune will save some state about what fortune it was up to on disk.

FILES

/usr/share/games/fortune/*
    the fortunes databases (those files ending “-o” contain the offensive fortunes)

EXIT STATUS
In particular, if -l, -m, or -s is specified, failure to find a matching citation in the selected files counts as an error.

SEE ALSO
arc4random_uniform(3), regcomp(3), regex(3), strfile(8)

HISTORY
The fortune utility first appeared AT&T UNIX.