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