zion - fortune
Nom
fortune - affiche un adage choisi au hasard, qu'on espère intéressant
Résumé
fortune [ -aefilosw ] [ -n longueur ] [ -m motif ] [[ n% ] fichier/répertoire/all ]
Description
Quand fortune est lancé sans arguments, il affiche un épigramme aléatoire. Les épigrammes sont divisés en plusieures catégories, chaque catégorie étant divisée entre ceux qui sont potentiellement blessants et ceux qui ne le sont pas.
Options
Les options sont les suivantes :
-a
Choisit dans toutes les listes de maximes, qu'elles soient blessantes ou pas. (Voir l'option -o pour plus d'informations sur les fortunes blessantes). |
-e
Considère que tous les fichiers de fortunes sont de la même taille (lire la discussion plus bas sur les fichiers multiples). |
-f
Affiche la liste des fichiers qui seraient parcourus, mais n'affiche pas de fortune. |
-l
Citations longues seulement. Voir l'option -n sur la définition de « long » dans ce contexte. |
-m motif
Affiche toutes les fortunes reconnues par le motif de l'expression régulière de base. La syntaxe de ces expressions dépend de la définition donnée par votre système de re_comp (3) ou regcomp (3), mais elle devrait néanmoins être similaire à la syntaxe utilisée dans grep (1).
|
-n longueur
Règle la taille de la plus longue fortune (en nombre de caractères) considérée comme « courte » (la valeur par défaut est 160). Toutes les fortunes dépassant cette longueur sont considérées comme étant « longues ». Faites attention ! Si vous définissez une taille trop petite et que vous demandez des fortunes courtes, ou trop grande et que vous en demandez des longues, fortune entre dans une boucle infinie qui fera planter le programme. |
-o
Choisit seulement des aphorismes potentiellement blessants. SVP, svp, ne demandez une fortune potentiellement blessante que si, et seulement si, vous croyez, tout au fond de votre coeur, que vous êtes disposé à vous faire insulter. (et que vous arrêterez simplement d'utiliser -o plutôt que de nous insulter à ce sujet, d'accord ?)
|
-s
Aphorismes courts seulement. Voir l'option -n sur la définition d'une fortune « courte ». |
-i
Ignore la casse pour les motifs de l'option -m |
-w
Attend avant de quitter pendant un certain temps calculé à partir du nombre de caractères du message. C'est une option utile si fortune est exécuté à partir de la procédure de sortie du système pour assurer que le message peut être lu avant que l'écran ne soit vidé. |
L'utilisateur peut spécifier des fortunes alternatives. Vous pouvez spécifier un fichier précis, un répertoire qui contient un ou plusieurs fichiers, ou le mot spécial all qui spécifie l'utilisation de toutes les bases de données standards. Toutes ces options peuvent être précédées par un pourcentage, c.-à-d. un nombre n entre 0 and 100 inclus, suivi par un % . Si cette option est spécifiée, il y aura une probabilité de n pour-cents qu'un adage sera choisi dans ce fichier ou ce répertoire. Si la somme des pourcentages n'est pas égale à 100, et qu'il y a des spécifications sans pourcentage, les pour-cents restants s'appliqueront à ces fichiers et/ou ces répertoires, auquel cas la probabilité de sélection parmi un de ceux-là sera basée sur leurs tailles respectives.
Par exemple, avec deux bases de données drôle and pas-drôle , avec drôle deux fois plus gros (en nombre de fortunes, pas en taille brute), taper
fortune drôle pas-drôle |
fortune 90% drôle 10% pas-drôle p |
L'option -e fera que tous les fichiers seront considérés égaux ; ainsi
fortune -e drôle pas-drôle |
fortune 50% drôle 50% pas-drôle |
Par exemple, en supposant qu'il existe une base de données appelée définitions dans les deux collections inoffensive et blessante, alors la commande suivante sélectionnera une définition inoffensive 90 % du temps, et une potentiellement blessante sur les 10 % restants :
fortune 90% définitions définitions-o |
Fichiers
Note : ce sont les réglages par défaut fixés à la compilation.
/home/compil/tmp/fortune-mod-buildroot/usr/share/games/fortunes
Répertoire des fortunes innofensives. |
/home/compil/tmp/fortune-mod-buildroot/usr/share/games/fortunes/off
Répertoire des fortunes blessantes. |
Si une série particulière de fortunes n'est vraiment pas la bienvenue, il y a une solution facile : supprimer le fichier .dat associé. Les données restent intactes, au cas où on voudrait les utiliser plus tard, mais comme fortune ne trouve plus le fichiers de pointeurs, il ignorera le fichier texte.
Bogues
La division de fortunes blessantes/inoffensives par répertoire, plutôt qu'avec le suffixe «-o» de fichier, n'est pas 100 % compatible avec le fortune original BSD. Même si le suffixe «-o» est reconnu comme faisant référence à une base de données blessante, les fichiers de la base de données blessante doivent encore se trouver dans un répertoire séparé. Il est possible d'éviter le problème, bien sûr, en déplaçant les fichiers «-o» dans le répertoire blessant (avec ou sans retitrage), et d'utiliser l'option -a
Les bases de données fournies ont été attaquées, afin de corriger les erreurs d'orthographe et de grammaire, et surtout pour réduire la redondance et les répétitions. Mais surtout pour éviter la répétitivité. Cela n'a pas été un succès total. Dans le processus, quelques fortunes ont pu également avoir été perdues.
Les bases de données sont maintenant divisées en un plus grand nombre de plus petits dossiers, certains organisés par format (poésie, définitions), et certains par contenu (religion, politique). Il y a des fichiers en double dans le répertoire principal et dans celui des fichiers blessants (par exemple, fortunes/définitions et fortunes/off/définitions). Toutes les fortunes potentiellement blessantes ne se trouvent pas dans les fichiers blessants, comme toutes les fortunes dans ces fichiers ne sont pas potentiellement blessantes, probablement, même si tout a été fait pour obtenir une cohérence plus grande. De plus, une meilleure séparation sera peut-être réalisée.
Historique
Cette version de fortune est basée sur NetBSD fortune 1.4, mais contient une série de résolution de bugs et d'améliorations.
Le format d'origine fortune/strfile utilisait un seul fichier ; strfile lisait le fichier texte et le convertissait en chaînes délimitées par le caractère nul, qui étaient stockées après le tableau des pointeurs dans le fichier .dat. À partir de NetBSD fortune 1.4, deux fichiers séparés ont désormais été utilisés : le fichier .dat était seulement l'en-tête (le tableau des pointeurs, plus les drapeaux ; voir strfile.h ), et les chaînes de texte étaient laissées dans leur propre fichier. Le problème potentiel ici est que les fichiers texte et d'en-tête peuvent se désynchroniser, mais cela permet l'édition simple des fichiers textes sans avoir recours à unstr, et il y a des économies potentielles d'espace disque (avec l'hypothèse que l'administrateur système garde les deux fichiers .dat avec les chaînes et les fichiers texte).
La plupart des améliorations par rapport à la version NetBSD supposent un système Linux, ce qui le faisait planter sur d'autres plate-formes, y compris les BSD. Le code source a depuis été rendu plus générique, et il fonctionne actuellement sur SunOS 4.x aussi bien que sur Linux, avec un support pour plus de plates-formes espéré pour le futur. Notez que certains bugs ont été découverts de manière accidentelle et réglés pendant ce processus.
À première vue, un grand nombre de personnes ont travaillé sur ce programme, la plupart sans laisser de traces.
Voir aussi
re_comp (3), regcomp (3), strfile (1), unstr (1)
Traduction
Bernard 'Voyageur' Cafarelli <bcafarel@messel.emse.fr>
Poster un commentaire