Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
fortune(6)
Edit
PageHistory
Diff
Info
LikePages
FORTUNE !!!FORTUNE NAME SYNOPSIS DESCRIPTION FILES BUGS HISTORY SEE ALSO ---- !!NAME 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 random 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 regular expression ''pattern''. The syntax of these expressions depends on how your system defines re_comp(3) or regcomp(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 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) considered 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 ask for short fortunes, or too long and ask for long ones, fortune goes into a never-ending thrash loop. __-o__ Choose only from potentially offensive aphorisms. The -o option is ignored if a fortune directory is specified. __Please, please, please request a potentially offensive 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 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, __-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 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 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'' 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 ''definitions'' 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/fortunes - Directory for inoffensive fortunes /usr/share/games/fortunes/off - Directory for offensive fortunes /usr/local/share/games/fortunes - Local directory for inoffensive fortunes /usr/local/share/games/fortunes/off - Local 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 without renaming), and to use the __-a__ option. 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, definitions), and some by content (religion, politics). There are parallel files in the main directory and in the offensive files directory (e.g., fortunes/definitions and fortunes/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-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 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 program, many without leaving attributions. !!SEE ALSO re_comp(3), regcomp(3), strfile(1), unstr(1) ----
7 pages link to
fortune(6)
:
unstr(1)
Man6f
strfile(1)
Kernel
phosphor(1)
C
SSHErrors
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.