FORTUNE(6) UNIX Reference Manual FORTUNE(6)
NAME
fortune - print a random, hopefully interesting, adage
SYNOPSIS
fortune [-acefilsw] [-n length] [ -m pattern] [[n%] file/dir/all]
DESCRIPTION
When fortune is run with no arguments it prints out a random epigram. Epigrams are divided
into several categories.
Options
The options are as follows:
-a Choose from all lists of maxims.
-c Show the cookie file from which the fortune came.
-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 don't print a fortune.
-l Long dictums only. See -n on how ``long'' is defined in this sense.
-m pattern
Print out all fortunes which match the basic regular expression pattern. The syn-
tax of these expressions depends on how your system defines re_comp(3) or reg-
comp(3), but it should nevertheless be similar to the syntax used in grep(1).
The fortunes are output to standard output, while the names of the file from which
each fortune comes are printed to standard error. Either or both can be redi-
rected; if standard output is redirected to a file, the result is a valid fortunes
database file. If standard error is also redirected to this file, the result is
still valid, but there will be ``bogus'' fortunes, i.e. the filenames themselves,
in parentheses. This can be useful if you wish to remove the gathered matches from
their original files, since each filename-record will precede the records from the
file it names.
-n length
Set the longest fortune length (in characters) considered to be ``short'' (the
default is 160). All fortunes longer than this are considered ``long''. Be care-
ful! If you set the length too short and ask for short fortunes, or too long and
ask for long ones, fortune goes into a never-ending thrash loop.
-s Short apothegms only. See -n on which fortunes are considered ``short''.
-i Ignore case for -m patterns.
-w Wait before termination for an amount of time calculated from the number of charac-
ters in the message. This is useful if it is executed as part of the logout proce-
dure 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 stan-
dard 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 a 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 (in number
of fortunes, not raw file size), 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's 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
FILES
Note: these are the defaults as defined at compile time.
/usr/share/games/fortune
Directory for fortunes.
If a particular set of fortunes is particularly unwanted, there is an easy solution:
delete the associated .dat file. This leaves the data intact, should the file later be
wanted, but since fortune no longer finds the pointers file, it ignores the text file.
BUGS
The supplied fortune databases have been attacked, in order to correct orthographical and
grammatical errors, and particularly to reduce redundancy and repetition and redundancy.
But especially to avoid repetitiousness. This has not been a complete success. In the
process, some fortunes may also have been lost.
The fortune databases are now divided into a larger number of smaller files, some orga-
nized by format (poetry, definitions), and some by content (religion, politics).
HISTORY
This version of fortune is based on the NetBSD fortune 1.4, but with a number of bug fixes
and enhancements.
The original fortune/strfile format used a single file; strfile read the text file and
converted it to null-delimited strings, which were stored after the table of pointers in
the .dat file. By NetBSD fortune 1.4, this had changed to two separate files: the .dat
file was only the header (the table of pointers, plus flags; see strfile.h), and the text
strings were left in their own file. The potential problem with this is that text file
and header file may get out of synch, but the advantage is that the text files can be eas-
ily edited without resorting to unstr, and there is a potential savings in disk space (on
the assumption that the sysadmin kept both .dat file with strings and the text file).
Many of the enhancements made over the NetBSD version assumed a Linux system, and thus
caused it to fail under other platforms, including BSD. The source code has since been
made more generic, and currently works on SunOS 4.x as well as Linux, with support for
more platforms expected in the future. Note that some bugs were inadvertently discovered
and fixed during this process.
At a guess, a great many people have worked on this program, many without leaving attribu-
tions.
SEE ALSO
re_comp(3), regcomp(3), strfile(1), unstr(1)
BSD Experimental 19 April 94 [May. 97] FORTUNE(6)
Man(1) output converted with
man2html