fortune - print a random, hopefully interesting, adage


SYNOPSIS

       fortune  [-aefilosw]  [-n  length]  [  -m  pattern]  [[n%]
       file/dir/all]


DESCRIPTION

       When fortune is run with no arguments it prints out a ran­
       dom epigram. Epigrams are divided into several categories,
       where each category is sub-divided into  those  which  are
       potentially offensive and those which are not.

   Options
       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.)

       -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  regu­
              lar   expression  pattern.   The  syntax  of  these
              expressions depends  on  how  your  system  defines
              re_comp(3)  or  regcomp(3), but it should neverthe­
              less 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  redirected; 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) con­
              sidered to be ``short'' (the default is 160).   All
              fortunes  longer than this are considered ``long''.
              Be careful!  If you set the length  too  short  and

              long ones, fortune goes into a never-ending  thrash
              loop.

       -o     Choose only from potentially offensive aphorisms.

              Please, please, please request a potentially offen­
              sive fortune if and only if you  believe,  deep  in
              your  heart,  that  you are willing to be offended.
              (And that you'll just quit  using  -o  rather  than
              give us grief about it, okay?)

              ... let us keep in mind the basic governing philos­
              ophy 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.  See -n on which fortunes are
              considered ``short''.

       -i     Ignore case for -m patterns.

       -w     Wait before termination for an amount of time  cal­
              culated  from  the number of characters in the mes­
              sage.  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  inclu­
       sive,  followed  by a %.  If it is, there will be a n per­
       cent 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 direc­
       tories, 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

       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

       This fortune also supports the  BSD  method  of  appending
       ``-o''  to  database  names to specify offensive fortunes.
       However this is not how  fortune  stores  them:  offensive
       fortunes  are  stored  in a seperate directory without the
       ``-o'' infix.  A plain name (i.e., not a path to a file or
       directory)  that  ends  in ``-o'' will be assumed to be an
       offensive database, and will have its suffix stripped  off
       and  be  searched  in the offensive directory (even if the
       neither of the -a or -o  options  were  specified).   This
       feature  is not only for backwards-compatibility, but also
       to allow users  to  distinguish  between  inoffensive  and
       offensive databases of the same name.

       For  example,  assuming  there is a database named defini­
       tions in both the inoffensive  and  potentially  offensive
       collections,  then  the  following  command will select an
       inoffensive definition 90% of the time, and a  potentially
       offensive definition for the remaining 10%:

              fortune 90% definitions definitions-o


FILES

       Note: these are the defaults as defined at compile time.

       /usr/share/games/fortune
              Directory for innoffensive fortunes.
       /usr/share/games/fortune/off
              Directory for offensive 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  division of fortunes into offensive and non-offensive
       by directory, rather than via the `-o' file infix, is  not
       100%  compatible  with  original BSD fortune. Although the
       `-o' infix is recognised  as  referring  to  an  offensive
       database, the offensive database files still need to be in
       a seperate directory.  The workaround, of  course,  is  to
       move  the `-o' files into the offensive directory (with or


       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  repititiousness.
       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 organized by format (poetry,  defi­
       nitions), and some by content (religion, politics).  There
       are parallel files in the main directory and in the offen­
       sive  files directory (e.g., fortunes/definitions and for­
       tunes/off/definitions).  Not all the potentially offensive
       fortunes  are in the offensive fortunes files, nor are all
       the fortunes in the offensive files potentially offensive,
       probably, though a strong attempt has been made to achieve
       greater consistency.  Also, a  better  division  might  be
       made.


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-delim­
       ited strings, which were stored after the table of  point­
       ers  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  easily  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 inadvertantly
       discovered and fixed during this process.

       At a guess, a great many people have worked on  this  pro­
       gram, many without leaving attributions.


SEE ALSO

       re_comp(3), regcomp(3), strfile(1), unstr(1)


Man(1) output converted with man2html