Il s'agit de la commande rappel qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
rappeler - un service de rappel sophistiqué
SYNOPSIS
rappeler [Options] nom de fichier [données] [*représentant] [fois]
DESCRIPTION
Rappeler lit le fourni nom de fichier et exécute les commandes qu'il contient. Les commandes
sont utilisés pour émettre des rappels et des alarmes. Chaque rappel ou alarme peut consister en un message
envoyé à la sortie standard, ou un programme à exécuter.
If nom de fichier est spécifié comme un seul tiret '-', alors Rappeler prend son entrée de la norme
saisir. Cela permet aussi implicitement de -o option, décrite ci-dessous.
If nom de fichier se trouve être un répertoire plutôt qu'un fichier simple, alors Rappeler lit tout
les fichiers de ce répertoire qui correspondent au modèle "*.rem". Les fichiers sont lus triés
ordre; l'ordre de tri peut dépendre de vos paramètres régionaux, mais doit correspondre à l'ordre de tri utilisé par
le shell pour développer "*.rem".
Rappeler lit ses fichiers du début à la fin, ou jusqu'à ce qu'il rencontre un
ligne dont le seul contenu est "__EOF__" (sans les guillemets.) Tout après le __EOF__
marqueur est complètement ignoré.
OPTIONS
Rappeler a une multitude d'options. Si vous êtes nouveau dans le programme, ignorez-les pour l'instant et ignorez
à la section "Fichiers de rappel".
-n Votre -n l'option provoque Rappeler pour imprimer le next occurrence de chaque rappel dans un
format de calendrier simple. Vous pouvez trier cela par date en acheminant la sortie à travers
sort(1).
-j[n] s'exécute Rappeler en mode "purge" pour se débarrasser des rappels expirés. Voir la rubrique PURGER
MODE pour plus de détails.
-r Votre -r l'option désactive COURT directives et le coquille() une fonction. A partir de Rappeler
3.00.17, en utilisant -u implique -r.
-c[drapeaux]n
Votre -c l'option provoque Rappeler pour produire un calendrier qui est envoyé à la sortie standard.
Si vous fournissez un nombre n, un calendrier sera généré pour n mois, à partir
avec le mois en cours. Par défaut, un calendrier pour le mois en cours uniquement est
produit.
Vous pouvez précéder n (le cas échéant) avec un ensemble de drapeaux. Les drapeaux sont les suivants :
'+' provoque un calendrier pour n semaines à produire.
'une' les causes Rappeler pour afficher les rappels sur le calendrier le jour où ils se produisent réellement
as ainsi que as les jours précédents spécifiés par le rappel delta.
'l' les causes Rappeler pour utiliser les caractères de dessin au trait VT100 pour dessiner le calendrier. le
les caractères sont codés en dur et ne fonctionneront que sur les terminaux qui émulent le VT00
jeu de caractères de dessin au trait.
'tu' est similaire à 'l', mais provoque Rappeler utiliser des caractères de dessin au trait UNICODE pour dessiner
le calendrier. Les caractères sont codés en dur et ne fonctionneront que sur les terminaux qui
sont définis sur le codage de caractères UTF-8.
'c' les causes Rappeler pour utiliser les séquences d'échappement VT100 pour se rapprocher des rappels de COULEUR SPÉCIALE.
L'approximation est (forcément) très grossière, car le VT100 n'a que huit
différentes séquences de couleurs, chacune avec l'une des deux luminosités. Un composant de couleur
supérieur à 64 est considéré comme « activé », et si l'une des trois composantes de couleur est
supérieur à 128, la couleur est considérée comme "brillante".
-wavec[,chemin[,CPS]]]
Votre -w L'option spécifie la largeur de sortie, le remplissage et l'espacement du formaté
sortie du calendrier. Avec spécifie le nombre de colonnes dans le périphérique de sortie, et
la valeur par défaut est 80. Tampon spécifie le nombre de lignes à utiliser pour "remplir" les cases de calendrier vides.
La valeur par défaut est 5. Si vous avez de nombreux rappels certains jours qui rendent votre
calendrier trop grand pour tenir sur une page, vous pouvez essayer de réduire chemin faire le vide
boîtes plus petites. spc spécifie le nombre de lignes vides à laisser entre le numéro du jour
et la première entrée de rappel. La valeur par défaut est 1.
N'importe quel avec, chemin or CPS peut être omis, à condition que vous fournissiez le nombre correct de
virgules. N'utilisez aucun espace dans l'option.
-s[a]n Votre -s l'option est très similaire à la -c option, sauf que le calendrier de sortie est
non formaté. Il est répertorié dans un "format simple" qui peut être utilisé comme entrée pour
programmes de dessin de calendrier plus sophistiqués. Si n commence par "+", puis c'est
interprété comme un nombre de semaines.
Si vous suivez immédiatement le s avec la lettre a, puis Rappeler affiche des rappels
sur le calendrier le jour où ils se produisent réellement as ainsi que as les jours précédents
spécifié par le rappel delta.
-p[a]n Votre -p l'option est très similaire à la -s option, sauf que la sortie contient
informations supplémentaires à l'usage du Rem2PS programme, qui crée un PostScript
calendrier. Pour cette option, n ne peut pas commencer par "+" ; il doit spécifier un certain nombre de
mois. Le format du -p la sortie est décrite dans le rem2ps(1) page de manuel. Si
vous suivez immédiatement le p avec la lettre a, puis Rappeler affiche des rappels sur
le calendrier le jour où ils se produisent réellement as ainsi que as les jours précédents
spécifié par le rappel delta.
-l Si vous utilisez l'option -l avec l'option -p, alors Rappeler sorties
des informations supplémentaires pour les programmes back-end tels que rem2ps. Ce supplément
les informations permettent aux programmes principaux de corréler un rappel avec le fichier source
et le numéro de ligne qui l'a produit.
-m Votre -m l'option provoque le -c or -p options pour produire un calendrier dont la première colonne
est le lundi plutôt que le dimanche. (Ceci est conforme à la norme internationale.)
-v Votre -v option rend la sortie de Rappeler un peu plus verbeux. Actuellement, ce
les causes Rappeler pour faire écho à une mauvaise ligne en cas d'erreur, et pour imprimer une sécurité
message si un script teste la variable système $RunOff.
-o Votre -o l'option provoque Rappeler tout ignorer UNE FOIS QUE directives.
-t Votre -t l'option provoque Rappeler pour déclencher tous les rappels non expirés, quel que soit le
delta fourni pour chaque rappel.
-tn Si vous fournissez un nombre n après le -t option, alors Rappeler prétend que chaque non-
rappel expiré a un delta of n jours et déclenche des rappels en conséquence.
-h Votre -h L'option ("hush...") supprime certains messages d'avertissement et d'information. Dans
en particulier, si aucun rappel n'est déclenché, ce mode ne produit aucune sortie.
-a Votre -a l'option provoque Rappeler ne pas déclencher immédiatement des rappels programmés qui déclenchent
le jour en cours. Il provoque également Rappeler de ne pas placer de rappels programmés dans un
calendrier. Si vous fournissez deux ou plus -a options, puis Rappeler sera déclenchement temporisé
rappels qui sont dans le futur, mais ne déclencheront pas de rappels programmés dont l'heure
a passé. (Peu importe combien -a options que vous fournissez, Rappeler ne comprendra pas
rappels programmés dans le calendrier si au moins un -a l'option est utilisée.)
-q Votre -q l'option provoque Rappeler ne pas mettre en file d'attente les rappels programmés pour une exécution ultérieure.
-f Votre -f l'option provoque Rappeler rester au premier plan lors du traitement en file d'attente
rappels, plutôt que d'abandonner un processus d'arrière-plan pour les gérer.
-e Votre -e l'option détourne les messages d'erreur (normalement envoyés au flux d'erreur standard)
au flux de sortie standard.
-dcaractères
Votre -d L'option active certains modes de débogage. le caractères spécifier les modes à
permettre:
e Faire écho à toutes les lignes d'entrée
x Trace toutes les évaluations d'expression
t Afficher tous les calculs de date de déclenchement
v Vider la table des variables après exécution du script de rappel
l Lignes d'écho lors de l'affichage des messages d'erreur
f Tracer la lecture des fichiers de rappel
-g[un|d[un|d[un|d[un|d]]]]
Normalement, les rappels sont émis dans l'ordre dans lequel ils sont rencontrés dans le
script de rappel. le -g raison de l'option Rappeler pour trier les rappels par date et heure
avant de les délivrer. L'optionnel a et d les caractères spécifient l'ordre de tri
(croissant ou décroissant) pour les champs date, heure et priorité. Voir la rubrique
"Rappels de tri" pour plus d'informations.
-b[n] Définissez le format de l'heure pour les sorties de calendrier et de calendrier simple. N peut aller de
0 à 2, avec la valeur par défaut 0. Une valeur de 0 entraîne l'insertion des heures au format 12 heures
format (am/pm). 1 provoque l'insertion des heures au format 24 heures et 2 inhibe
l'insertion automatique des heures dans la sortie du calendrier.
-x[n] Définit la limite d'itération pour le SATISFAIRE clause d'un REM commander. La valeur par défaut est 150.
-kcmd Au lieu de simplement imprimer MSG-type rappels, cela les fait passer au
groupe de neurones cmd. Vous devez utiliser '%s' là où vous voulez que le corps apparaisse, et vous devrez peut-être
placez cette option entre guillemets. Notez que tous les caractères shell dans le corps du
rappel sont échappés avec une barre oblique inverse, et le corps entier du rappel est
passé comme un seul argument. Notez que cette option remplacements le -r option et le
COURT de remise commander.
Par exemple, supposons que vous ayez un programme X Window appelé message x qui fait apparaître un
fenêtre et affiche ses arguments d'appel. Vous pouvez utiliser :
rappeler '-kxmessage %s &' ...
avoir tous vos MSG-type de rappels traités à l'aide de xmessage.
Un mot d'avertissement : il est très facile de générer des dizaines de processus xmessage avec le
technique ci-dessus. Soyez donc très prudent. Parce que tous les caractères shell et blancs
sont échappés, le programme que vous exécutez avec le -k l'option doit être préparée à gérer
l'ensemble du message comme un seul argument.
-z[n] s'exécute Rappeler en mode démon. Si n
est fourni, il précise à quelle fréquence (en minutes) Rappeler devrait se réveiller pour vérifier si
le script de rappel a été modifié. N la valeur par défaut est 1 et peut aller de 1 à 60.
A noter que l'utilisation du -z l'option permet également la -f option.
Si vous fournissez l'option -z0, Rappeler fonctionne dans un mode spécial appelé serveur mode.
Ceci est documenté dans la page de manuel tkremind ; voir rappelez-vous (1).
-uprénom Fonctionne Rappeler avec l'uid et le gid de l'utilisateur spécifié par prénom. L'option change
l'uid et le gid comme décrit, et définit les variables d'environnement HOME, SHELL et
USER au répertoire personnel, au shell et au nom d'utilisateur, respectivement, du
utilisateur. LOGNAME est également défini sur le nom d'utilisateur spécifié. Cette option est destinée à
utiliser dans les scripts shell qui envoient des rappels à tous les utilisateurs. Notez qu'à partir de Rappel
3.00.17, en utilisant -u implique -r -- la directive RUN et les fonctions shell() sont
désactivée.
Les utilisateurs non root peuvent également utiliser le -u option. Cependant, dans ce cas, cela ne change que
les variables d'environnement comme décrit ci-dessus. Cela ne change pas l'uid effectif
ou gid.
-y Causes Rappeler pour synthétiser une balise pour tout rappel dépourvu de clause TAG.
-ivar=expr
Définit la valeur du spécifié var à expr et conserves var. Expr peut être n'importe quel
Info de contact. Rappeler expression. Voir la section "Initialisation des variables sur la commande
Ligne" pour plus de détails.
-ifonction(args)=définition
Permet de définir une fonction sur la ligne de commande.
Si vous fournissez un données sur la ligne de commande, il doit consister en journée mois une année, Où journée is
le jour du mois, mois est au moins les trois premières lettres du nom anglais du
mois, et une année est une année (tous les 4 chiffres) de 1990 à 2075 environ. Vous pouvez omettre le
journée, qui prend alors par défaut la valeur 1.
Si vous fournissez un données sur la ligne de commande, puis Rappeler l'utilise, plutôt que le réel
date du système, comme sa notion d'"aujourd'hui". Cela vous permet de créer des calendriers pour les mois à venir,
ou testez pour voir comment vos rappels seront déclenchés à l'avenir. De même, vous pouvez
fournir un fois (au format 24 heures -- par exemple, 17:15) pour définir Rappelerla notion de "maintenant" à
un moment particulier. Fournir un fois sur la ligne de commande active également implicitement le -q
option et désactive le -z option.
Si vous préférez spécifier la date de manière plus succincte, vous pouvez la fournir sous la forme AAAA-MM-JJ ou
AAAA/MM/JJ. Vous pouvez même fournir une date et une heure sur la ligne de commande en tant qu'argument :
AAAA-MM-JJ@HH:MM.
De plus, vous pouvez fournir un répéter paramètre, qui a la forme *num. Ce qui provoque
Rappeler être exécuté num fois, la date s'incrémentant à chaque itération. Vous devrez peut-être
placez le paramètre entre guillemets pour éviter l'expansion du shell. Voir la sous-section "Répétée
Exécution" dans la section "Mode Calendrier" pour plus d'informations.
RAPPEL DES DOSSIERS
Rappeler utilise des scripts pour contrôler son fonctionnement. Vous pouvez utiliser n'importe quel éditeur de texte capable de
création de fichiers ASCII simples pour créer un Rappeler scénario. Les commandes à l'intérieur d'un script peuvent
vont du très simple et presque immédiatement compréhensible :
REM 6 janvier Anniversaire de MSG Dianne
au baroque et à l'obscur :
REM [date(cette année, 1, 1) + 180] ++5 OMIT \
sam dim AVANT MSG [ord(thisyear-1980)] paiement dû %b !
Un fichier de rappel est constitué de commandes, avec une commande par ligne. Plusieurs lignes peuvent être
continué en utilisant la barre oblique inverse, comme dans l'exemple ci-dessus. Dans ce cas, tout
les lignes concaténées sont traitées comme une seule ligne par Rappeler. Notez que si une erreur
se produit, Rappeler rapporte le numéro de ligne de la dernière ligne d'une ligne continue.
Rappeler ignore les lignes vides et les lignes commençant par le '#' ou ';' personnages. Tu peux
utilisez le point-virgule comme caractère de commentaire si vous souhaitez passer un Rappeler script à travers le C
pré-processeur, qui interprète le caractère '#' comme le début d'un pré-traitement
Directive.
Notez que Rappeler traite les continuations de ligne avant toute autre chose. Par example:
# Ceci est un commentaire \
Cette ligne fait partie du commentaire à cause de la continuation de la ligne \
etc.
REM MSG Cette ligne n'est pas ignorée (pas de \ ci-dessus)
Rappeler n'est pas sensible à la casse ; vous pouvez généralement utiliser n'importe quel mélange de majuscules ou de minuscules
pour les commandes, les paramètres, les options d'appel, etc.
L' REM COMMAND
La commande la plus puissante d'un Rappeler le script est le REM commander. Cette commande est
responsable de l'émission des rappels. Sa syntaxe est :
REM [UNE FOIS QUE] [date_spec] [RETOUR] [delta] [répéter] [PRIORITÉ prio] [SKIP | AVANT DE |
APRÈS] [OMETTRE liste_omise] [OMITFUNC omettre_fonction] [AT fois [tdelta] [trépas]]
[PROGRAMMÉ fonction_programmée] [WARN fonction_avertissement] [JUSQU'À CE QUE date d'expiration | PAR dernier rendez-vous]
[NUMÉRISER À PARTIR date_scan | De date de début] [DURÉE durée] [TAG Étiquette]MSG | MSF |
COURT | CAL | SATISFAIRE | SPÉCIALITÉS spécial | PS | FICHIER PS> corps
Les parties du REM La commande peut être spécifiée dans n'importe quel ordre, sauf que le corps doit venir
immédiatement après MSG, COURT , CAL, PS, FICHIER PS or SATISFAIRE mot-clé.
Votre REM le jeton est facultatif, à condition que le reste de la commande ne puisse pas être confondu
pour un autre Rappeler commande telle que OMETTRE or COURT . La portion du REM commande avant le
MSG, MSF COURT , CAL or SATISFAIRE clause s'appelle un déclencher.
GMS, MSF, COURIR, CAL, SPÉCIAL, PS et FICHIER PS
Ces mots-clés désignent le type du rappel. (SATISFAIRE est plus compliqué et sera
expliqué plus tard.) Un MSG-type rappel imprime normalement un message sur la sortie standard,
après avoir passé le corps via un filtre de substitution spécial, décrit dans la section
"Le filtre de substitution." Cependant, si vous avez utilisé le -k option de ligne de commande, puis
MSG-les rappels de type sont transmis au programme approprié. Notez que les options -c, -s,
-p et -n désactiver le -k option.
Notez que vous pouvez omettre le type de rappel, auquel cas il est par défaut MSG. Afin que vous puissiez
écrire:
6 janvier Anniversaire de Diane
bien que ce ne soit pas recommandé.
Votre MSF le mot-clé est presque le même que le MSG mot-clé, sauf que le rappel est
formaté pour s'adapter à un format de type paragraphe. Trois variables système contrôlent le
formatage de MSF-type rappels - ils sont $PremierRetrait, $SubIndent et $FormeLargeur.
Elles sont décrites dans la section "Variables système". le MSF mot-clé provoque l'espacement
de votre rappel à modifier - les espaces supplémentaires sont supprimés et deux espaces sont placés
après les points et autres caractères, comme spécifié par les variables système $FinEnvoyé et
$FinEnvoyéIg. Notez que si le corps du rappel comprend des caractères de nouvelle ligne (placés
là avec la séquence %_), alors les nouvelles lignes sont traitées comme les débuts de la nouvelle
paragraphes, et le $PremierRetrait l'indentation est utilisée pour la ligne suivante. Vous pouvez utiliser deux
des sauts de ligne consécutifs pour avoir des paragraphes espacés émis à partir d'un seul corps de rappel.
A COURT -type rappel passe également le corps à travers le filtre de substitution, mais ensuite
exécute le résultat en tant que commande système. UNE CAL-type rappel est utilisé uniquement pour placer
entrées dans le calendrier produites lorsque Rappeler est exécuté avec le -c, -s or -p options.
A PS or FICHIER PS-type rappel est utilisé pour transmettre le code PostScript directement à l'imprimante lorsque
produire des calendriers PostScript. Cela peut être utilisé pour ombrer certaines entrées de calendrier (voir
la fonction psshade()), inclure des graphiques dans le calendrier, ou presque à toute autre fin que vous
peut penser. Vous ne devez pas utiliser ces types de rappels, sauf si vous êtes un expert
Programmeur PostScript. le PS et FICHIER PS les rappels sont ignorés à moins que Rappeler est exécuté avec
le -p option. Voir la section "En savoir plus sur PostScript" pour plus de détails.
A SPÉCIALITÉS-type rappel est utilisé pour transmettre des informations "hors bande" de Rappeler à
back-end produisant un calendrier. Il doit être suivi d'un mot indiquant le type de
des données spéciales sont transmises. Le type de rappel spécial dépend du back-end. Pour
le Rem2PS back-end, SPÉCIALITÉS PostScript est équivalente à une PS-type rappel, et SPÉCIALITÉS
Fichier PS est équivalente à une FICHIER PS-type rappel. Le corps d'un SPÉCIALITÉS le rappel est
dépend évidemment du back-end.
DATES DONNÉES TECHNIQUES
A date_spec se compose de zéro à quatre parties. Ces pièces sont journée (jour du mois), mois
(nom du mois), une année et jour de la semaine. Mois et en semaine sont les noms anglais des mois et
jours de la semaine. Au moins les trois premiers caractères doivent être utilisés. Voici des exemples
des différentes parties d'un date_spec :
journée: 1, 22, 31, 14, 3
mois: JANVIER, février, mars, avril, mai, août
année: 1990, 1993, 2030, 95 (interprété comme 1995). L'année peut aller de 1990 à 2075.
jour de la semaine:
Lundi, mar, mer, JEU, vendredi, samedi, dimanche
Notez qu'il peut y avoir plusieurs en semaine composants séparés par des espaces dans un date_spec.
INTERPRÉTATION OF DATES DONNÉES TECHNIQUES
Les exemples suivants montrent comment les spécifications de date sont interprétées.
1. Spécification de date nulle - le rappel est déclenché tous les jours. La date de déclenchement d'un
l'exécution spécifique est simplement la date système actuelle.
2. Seulement journée cadeau. Le rappel est déclenché le jour spécifié de chaque mois. le
la date de déclenchement pour une exécution particulière est la date la plus proche de la date système actuelle. Pour
Exemple:
REM 1 MSG Le premier de chaque mois.
REM 31 MSG 31 de chaque mois qui a 31 jours.
3. Seulement mois cadeau. Le rappel est déclenché chaque jour du mois spécifié.
Mise en situation :
REM fév MSG Tous les jours en février
4. journée et mois cadeau. Exemples:
REM 6 janvier MSG Chaque 6 janvier
REM 29 février MSG Chaque 29 février
5. Seulement une année cadeau. Exemple:
REM 1991 MSG Tous les jours en 1991
6. une année et journée cadeau. Exemples:
REM 1 1990 MSG 1er de chaque mois en 1990
REM 1992 23 MSG 23 de chaque mois en 1992
7. une année et mois cadeau. Exemples:
REM février 1991 MSG Tous les jours en février 1991
REM 1992 septembre MSG Tous les jours en septembre 1992
8. an, mois et journée cadeau. Exemples:
REM 8 janvier 1991 MSG 8 janvier 1991.
REM 1992 9 mars MSG 9 mars 1992.
9. en semaine seul. Exemples:
REM sam MSG tous les samedis
REM Lun Mar Mer Jeu Ven MSG Tous les jours ouvrables
REM Lundi Mercredi MSG Tous les lundis et mercredis
10. en semaine et journée cadeau. Exemples:
REM Sam 1 MSG Premier samedi de chaque mois
REM Lun Mar Mer Jeu Ven 15 \
MSG 1er jour ouvrable après le 15 de chaque mois
11. en semaine et mois cadeau. Exemples:
REM lun mars MSG tous les lundis de mars
REM Lun Mar Mer Jeu Ven Fév MSG Tous les jours ouvrables en février
12. jour de la semaine, mois et journée cadeau. Exemples:
REM lun 1 mars MSG Premier lundi de mars
REM sam dim 15 juillet MSG premier sam ou dim le ou après le 15 juillet
13. en semaine et une année cadeau. Exemple:
REM sam dim 1991 MSG tous les samedis et dimanches en 1991
14. jour de la semaine, journée et une année cadeau. Exemples:
REM lun 15 1990 MSG 1er lun après le 15 de chaque mois en 1990
REM lun mar mer jeu ven 1 1990 \
MSG 1er jour ouvrable de chaque mois en 1990
15. jour de la semaine, mois et une année cadeau. Exemple:
REM lun. mer. 1991 février MSG chaque lun. et mer. en février 1991.
16. jour de la semaine, jour, mois et une année cadeau. Exemple:
REM Lun Mar Mer Jeu Ven 28 Oct 1990 \
MSG 1er jour ouvrable à partir du 28 octobre 1990.
Notez que lorsque les deux en semaine et journée sont spécifiés, Rappeler choisit la première date le ou
après le spécifié journée qui satisfait également le en semaine contrainte. Il le fait par
choisir la première date le ou après le spécifié journée qui est répertorié dans la liste des
jours de la semaine. Ainsi, un rappel comme :
REM Lun Mar 28 Oct 1990 MSG Salut
ne serait publié que le lundi 29 octobre 1990. Il ne serait pas publié le mardi 30
octobre 1990, puisque le 29 est la première date pour satisfaire le en semaine contraintes.
STÉNOGRAPHIE DATES DONNÉES TECHNIQUES
En plus d'écrire séparément le jour, le mois et l'année, vous pouvez spécifier AAAA-MM-JJ
ou AAAA/MM/JJ. Par exemple, les déclarations suivantes sont équivalentes :
REM 5 juin 2010 MSG Cool !
REM 2010-06-05 MSG Cool !
Vous pouvez également spécifier une date et une heure sous la forme AAAA-MM-JJ@HH:MM. Ces déclarations sont
équivalent:
REM 19 décembre 2010 À 16:45 MSG Bonjour
REM 2010-12-19@16:45 MSG Bonjour
Il y a une subtilité avec les spécifications de date abrégée : les déclarations suivantes sont
pas équivalent:
REM 19 déc. 2010 À 16:45 +60 MSG Salut
REM 2010-12-19@16:45 +60 MSG Bonjour
Dans la deuxième déclaration, le "+60" est un delta qui s'applique à la date plutôt qu'à un
tdelta qui s'applique à l'époque. Nous vous recommandons d'utiliser explicitement le mot-clé AT avec timed
rappels.
L' RAPPELER ALGORITHME
Rappeler utilise l'algorithme suivant pour calculer une date de déclenchement : à partir de la date actuelle
date, il examine chaque jour, un à la fois, jusqu'à ce qu'il trouve une date qui satisfasse la date
spécification, ou se prouve qu'une telle date n'existe pas. (Réellement, Rappeler seulement
se comporte comme s'il utilisait cet algorithme ; ce serait beaucoup trop lent dans la pratique. Intérieurement,
Rappeler utilise des techniques beaucoup plus rapides pour calculer une date de déclenchement.) Voir DÉTAILS SUR
DÉCLENCHER LE CALCUL pour plus d'informations.
ARRIÈRE BALAYAGE
Parfois, il est nécessaire de spécifier une date comme étant un laps de temps défini avant une autre
Date. Par exemple, le dernier lundi d'un mois donné est calculé comme le premier lundi de
le mois suivant, moins 7 jours. le RETOUR spécification dans le rappel est utilisé dans ce
Cas:
REM Mon 1 -7 MSG Le dernier lundi de chaque mois.
A RETOUR est spécifié avec un ou deux tirets suivis d'un entier. Ce qui provoque Rappeler à
reculer par rapport à ce qui serait normalement la date de déclenchement. La différence entre --7
et -7 seront expliqués lorsque le OMETTRE mot-clé est décrit.
AVANCER ATTENTION
Pour certains rappels, il convient d'être prévenu à l'avance de l'événement. Pour
Par exemple, vous pouvez souhaiter qu'on vous rappelle l'anniversaire de quelqu'un plusieurs jours à l'avance. le
delta partie de la REM la commande y parvient. Il est spécifié par un ou deux signes "+"
suivi d'un nombre n. Encore une fois, la différence entre les formes "+" et "++" sera
expliqué sous le OMETTRE mot-clé. Rappeler déclenchera le rappel sur le déclencheur calculé
date, ainsi qu'à chacun des n jours avant l'événement. Voici quelques exemples:
REM 6 jan +5 MSG Rappelez-moi l'anniversaire 5 jours à l'avance.
L'exemple ci-dessus serait déclenché tous les 6 janvier, ainsi que du 1er au 5
de janvier.
PÉRIODIQUE RAPPELS
Nous avons déjà vu des mécanismes intégrés pour certains types de rappels périodiques.
Par exemple, un événement se produisant chaque mercredi pourrait être spécifié comme :
Événement REM Mer MSG !
Cependant, les événements qui ne se répètent pas quotidiennement, hebdomadairement, mensuellement ou annuellement nécessitent un autre
approcher. le répéter composante de la REM commande répond à ce besoin. Pour l'utiliser, vous devez
spécifier complètement une date (année, mois et jour, et éventuellement jour de la semaine.) Le répéter
composant est un astérisque suivi d'un nombre spécifiant la période de répétition en jours.
Par exemple, supposons que vous soyez payé un mercredi sur deux et que votre dernier jour de paie était
Mercredi 28 octobre 1992. Vous pouvez utiliser :
REM 28 oct. 1992 *14 MSG sur salaire
Celui-ci émet le rappel tous les 14 jours, à partir de la date de déclenchement calculée. Vous
pouvez utiliser delta et RETOUR au répéter. Notez cependant que le RETOUR est utilisé uniquement pour calculer
la date de déclenchement initiale ; par la suite, le rappel se répète avec la période spécifiée.
De même, si vous spécifiez un jour de la semaine, il est utilisé uniquement pour calculer la date initiale, et
n'affecte pas la période de répétition.
NUMÉRISER À PARTIR et De
Votre NUMÉRISER À PARTIR et De les mots-clés sont pour avancé Rappeler programmeurs uniquement, et sera
expliqué dans la section "Détails sur le calcul de déclenchement" vers la fin de ce manuel.
Notez que NUMÉRISER À PARTIR est disponible uniquement dans les versions de Rappeler à partir du 03.00.04. De is
disponible uniquement à partir du 03.01.00 et plus tard.
PRIORITÉ
Votre PRIORITÉ le mot-clé doit être suivi d'un nombre de 0 à 9999. Il est utilisé dans le calendrier
mode et lors du tri des rappels. Si deux rappels ont la même date et heure de déclenchement,
puis ils sont triés par priorité. Si la PRIORITÉ le mot-clé n'est pas fourni, une valeur par défaut
la priorité de 5000 est utilisée. (Cette valeur par défaut peut être modifiée en ajustant la variable système
$Prio par défaut. Voir la section "Variables système" pour plus d'informations.)
EXPIRATION OCCULTÉE
Certains rappels doivent être émis périodiquement pendant un certain temps, mais expirent ensuite. Pour
exemple, supposons que vous ayez un cours tous les vendredis et que votre dernier cours ait lieu le 11 décembre
1992. Vous pouvez utiliser :
REM ven JUSQU'AU 11 décembre 1992 Classe MSG aujourd'hui.
Autre exemple : supposons que vous ayez été juré du 30 novembre 1992 au 4 décembre 1992.
Le rappel suivant émettra le message chaque jour de votre fonction de juré, ainsi que 2
jours à l'avance :
REM 1992-11-30 *1 +2 JUSQU'A 1992-12-04 MSG Jury
Notez que le répéter de *1 est nécessaire ; sans elle, le rappel ne serait émis que le
30 novembre (et les deux jours précédents.)
Comme cas particulier, vous pouvez utiliser le PAR mot-clé au lieu de *1 et JUSQU'À CE QUE. Le suivant
deux REM les commandes sont équivalentes :
REM 1992-11-30 *1 +2 JUSQU'A 1992-12-04 MSG Jury
REM 1992-11-30 +2 JUSQU'À 1992-12-04 MSG Jury
L' UNE FOIS QUE MOT-CLÉ
Parfois, il est nécessaire de s'assurer que les rappels ne sont exécutés qu'une seule fois par jour. Pour
exemple, si vous avez un rappel qui effectue une sauvegarde de vos fichiers tous les vendredis :
REM Ven RUN do_backup
(Ici, faites des sauvegardes est supposé être un programme ou un script shell qui fait le travail.) Si vous
courir Rappeler depuis votre script .login par exemple, et connectez-vous plusieurs fois par jour, le
faites des sauvegardes programme sera exécuté à chaque connexion. Si, toutefois, vous utilisez le UNE FOIS QUE mot-clé
dans le rappel, le Rappeler vérifie la date du dernier accès au script de rappel. Si c'est
la même que la date du jour, Rappeler suppose qu'il a déjà été exécuté et ne
émettre des rappels contenant les UNE FOIS QUE mot-clé.
Notez que si vous visualisez ou modifiez votre script de rappel, la date du dernier accès sera mise à jour,
et la UNE FOIS QUE mot-clé ne fonctionnera pas correctement. Si vous commencez Rappeler couplé à -o option,
puis le UNE FOIS QUE le mot-clé sera ignoré.
LOCALEMENT OMISSION JOURS DE LA SEMAINE
Votre OMETTRE partie de la REM commande est utilisée pour "omettre" certains jours lors du décompte des delta
or RETOUR. Il est spécifié à l'aide du mot-clé OMETTRE suivi d'une liste de jours de la semaine. Son
l'action est mieux illustrée par des exemples :
REM 1 +1 OMIT Sam Sun MSG Événement important
Ce rappel est normalement déclenché le premier de chaque mois, ainsi que le jour
le précédant. Cependant, si le premier du mois tombe un dimanche ou un lundi, le
rappel est déclenché à partir du vendredi précédent. C'est parce que le delta de +1
ne compte pas le samedi ou le dimanche lorsqu'il compte à rebours de la date de déclenchement à
déterminer combien d'avertissement à l'avance donner.
Comparez cela avec l'utilisation de "++1" dans la commande ci-dessus. Dans ce cas, le rappel est
déclenché le premier de chaque mois, ainsi que le jour qui le précède. Les jours omis
sont comptés.
REM 1 -1 OMIT Sam Dim MSG Dernier jour ouvrable du mois
Encore une fois, dans l'exemple ci-dessus, le RETOUR de -1 fait normalement que la date de déclenchement est la
dernier jour du mois. Cependant, en raison de la OMETTRE clause, si le premier du mois
tombe un dimanche ou un lundi, la date de déclenchement est reculée après le week-end pour
Vendredi. (Si vous avez globalement omis des jours fériés, le rappel sera reculé après
eux aussi. Voir "La commande OMIT" pour plus de détails.)
Par comparaison, si nous avions utilisé "--1", le rappel serait déclenché le dernier jour de
le mois, quel que soit le OMETTRE.
CALCULÉ L'APPROVISIONNEMENT OMET
Votre OMITFUNC phrase de la REM La commande vous permet de fournir une fonction qui détermine
si une date est omise ou non. La fonction reçoit un seul paramètre de type DATES,
et doit retourner un entier différent de zéro si la date est considérée comme « omise » et 0 sinon.
Voici un exemple:
FSET _tiers(x) (jour(x) % 3) || \
(nombre de jours(x) == 0) || \
(semainenum(x) == 6)
REM OMITFUNC _troisième APRÈS MSG Jour ouvrable divisible par 3
Dans l'exemple ci-dessus, le rappel est déclenché chaque lundi au vendredi dont le jour du mois
nombre est divisible par trois. Voici comment ça fonctionne:
o Votre OMITFUNC _troisième partie provoque tous les jours pour lesquels _troisième(x) renvoie une valeur non nulle à
être considéré comme « omis ». Cela provoque tous les jours dont le numéro de jour du mois est pas a
multiple de trois à omettre. Notez que _third renvoie également une valeur non nulle si le
le jour de la semaine est le dimanche ou le samedi.
o Votre APRÈS Le mot-clé provoque le déplacement du rappel après un bloc de jours omis.
La combinaison des mots clés OMITFUNC et AFTER provoque l'émission du rappel tous les jours
dont le numéro du jour du mois est divisible par trois, mais pas le samedi ou le dimanche.
Notez que si vous utilisez OMITFUNC, puis un local OMETTRE is ignoré de même que tous de défis OMIT. Si
vous souhaitez omettre des jours de semaine spécifiques, votre fonction d'omission devra les tester
Plus précisément. Si vous voulez prendre en compte la globalité OMETTRE contexte, alors votre omission
la fonction devra tester cela explicitement (en utilisant le isomis() fonction.)
Notez qu'une erreur OMITFUNC pourrait faire en sorte que tous les jours soient considérés comme omis. Pour ça
raison, quand Rappeler recherche les jours omis, il met fin à la recherche après le
SATISFAIRE limite d'itération (option de ligne de commande -x.)
TEMPORISÉ RAPPELS
Les rappels programmés sont ceux qui ont une AT mot-clé suivi d'un fois et facultatif tdelta
et trépasL’ fois doit être spécifié au format 24 heures, 0:00 représentant
minuit, 12h00 représentant midi et 23h59 représentant une minute avant minuit. Tu peux
utilisez soit deux points, soit un point pour séparer les heures des minutes. C'est-à-dire 13:39 et
13.39 sont équivalents.
Rappeler traite spécialement les rappels programmés. Si la date de déclenchement d'un rappel programmé est la
identique à la date système actuelle, le rappel est mis en file d'attente pour une activation ultérieure. Lorsque Rappeler
a fini de traiter le fichier de rappel, il se met en arrière-plan et s'active
rappels programmés lorsque l'heure du système a atteint l'heure spécifiée.
Si la date de déclenchement est pas identique à la date système, le rappel n'est pas mis en file d'attente.
Par exemple, le rappel suivant, déclenché chaque jour ouvré, émettra un message
vous disant de partir à 5h00 :
REM Lun Mar Mer Jeu Ven AT 17:00 MSG Il est temps de partir !
Le rappel suivant sera déclenché les jeudis et vendredis, mais ne sera mis en file d'attente
les vendredis:
REM ven ++1 À 13h00 MSG Déjeuner à 1hXNUMX vendredi.
Votre tdelta et trépas avoir la même forme qu'un répéter et delta, mais sont spécifiés dans
minutes. Par exemple, ce rappel sera déclenché à 12h00 ainsi que 45 minutes
avant:
REM À 12:00 +45 MSG Exemple
Ce qui suit sera émis à partir de 10h45, toutes les demi-heures jusqu'à 11h45, et de nouveau à
le midi.
REM AT 12:00 +75 *30 MSG Exemple2
Le « +75 » signifie que le rappel est émis à partir de 75 minutes avant midi ; en d'autre
mots, à 10h45. Le *30 précise que le rappel est ensuite émis tous les
30 minutes. Notez que le rappel est toujours émis à l'heure spécifiée, même si le
tdelta n'est pas un multiple de trépas. L'exemple ci-dessus est donc émis à 10h45,
11h15, 11h45 et 12h00. Notez que dans la spécification du temps, il n'y a pas de
distinction entre les formes "+" et "++" de tdelta.
Normalement, Rappeler émettra des rappels programmés pendant qu'il traite le script de rappel, ainsi
comme les mettre en file d'attente pour plus tard. Si tu ne veux pas Rappeler émettre les rappels lorsque
traiter le script, mais uniquement pour les mettre en file d'attente pour plus tard, utilisez le -a option de ligne de commande.
Si vous ne souhaitez pas que les rappels soient mis en file d'attente pour plus tard, utilisez le -q option de ligne de commande.
Normalement, Rappeler forks un processus d'arrière-plan pour gérer les rappels en file d'attente. Si tu veux
Rappeler pour rester au premier plan, utilisez le -f option de ligne de commande. Ceci est utile, pour
exemple, dans les scripts .xinitrc, où vous pouvez utiliser la commande :
rappeler -fa mes rappels &
Cela garantit que lorsque vous quittez X-Windows, le Rappeler le processus est tué.
ATTENTION À PROPOS TEMPORISÉ RAPPELS
Remarque : si vous utilisez des fonctions ou des variables définies par l'utilisateur (décrites plus loin) dans les corps de
rappels temporisés, puis lorsque les rappels temporisés sont activés, les variables et fonctions
avoir les définitions qui étaient en vigueur à la fin du script de rappel. Ces
les définitions peuvent pas nécessairement ceux qui étaient en vigueur au moment où le rappel a été
en file d'attente.
L' PROGRAMMÉ ET WARN MOTS-CLÉS
Votre PROGRAMMÉ le mot-clé permet un contrôle plus précis du déclenchement des rappels programmés, et
le WARN mot-clé permet un contrôle précis du déclenchement anticipé de tous types de
rappels. Cependant, la discussion doit être différée jusqu'à ce qu'après les expressions et définies par l'utilisateur
les fonctions sont expliquées. Voir plus loin la sous-section « Ordonnancement précis ».
TAG ET DURÉE
Votre TAG le mot-clé vous permet de « taguer » certains rappels. Cette facilité est utilisée par certains
extrémités ou systèmes construits autour Rappeler tels que TkRappel. Ces back-ends ont des
règles sur les balises ; voir leur documentation pour plus de détails.
Votre TAG Le mot-clé est suivi d'une balise comportant jusqu'à 48 caractères. Vous pouvez avoir comme
autant de clauses TAG que vous le souhaitez dans une instruction REM donnée.
Si vous fournissez le -y Option de Rappeler, puis tout rappel sans TAG en aura un
synthétisé. La balise synthétisée se compose des caractères "__syn__" suivis du
représentation hexadécimale de la somme MD5 de la ligne de commande REM. Cela vous permet de donner un
identifiant plus ou moins unique à chaque commande REM distincte.
Votre DURÉE le mot-clé n'a de sens que pour les rappels programmés ; il précise la durée d'un
un événement. Actuellement, ce n'est pas utilisé, mais il peut être utilisé à l'avenir par les back-ends ou
systèmes de planification construits autour Rappeler. Par exemple, si vous avez une réunion de 90 minutes
à partir de 1h00, vous pouvez utiliser :
REM 5 mars 1999 À 13H00 DURÉE 1H30 Réunion du Groupe multipartite
Notez que durée est spécifié en heures et minutes.
L' SUBSTITUTION FILTRE
Avant d'être transformé, le corps d'un REM la commande est passée à travers un filtre de substitution.
Le filtre recherche les séquences "%x" (où "x" est une lettre et certains autres caractères)
et effectue les substitutions comme indiqué ci-dessous. (Toutes les dates se réfèrent à la date de déclenchement du
rappel.)
%a est remplacé par "sur jour de la semaine, journée mois, une année"
Par exemple, considérons le rappel :
REM 18 oct. 1990 +4 MSG Rencontre avec Bob %a.
Le 16 octobre 1990, il imprimerait « Rencontre avec Bob le jeudi 18 octobre,
1990. "
Le 17 octobre 1990, il imprimerait "Rencontre avec Bob demain".
Le 18 octobre 1990, il imprimerait « Meeting with Bob today ».
%b est remplacé par "dans diff l'heure du jour" où diff est le présenter nombre de jours
entre la date du jour et la date de déclenchement. (OMIT n'ont aucun effet.)
Par exemple, considérez:
REM 18 oct. 1990 +4 MSG Rencontre avec Bob %b.
Le 16 octobre 1990, il imprimerait « Rencontre avec Bob dans 2 jours ».
Le 17 octobre 1990, il imprimerait "Rencontre avec Bob demain".
Le 18 octobre 1990, il imprimerait « Meeting with Bob today ».
%c est remplacé par "sur en semaine"
Exemple : REM 18 oct. 1990 +4 MSG Réunion avec Bob %c.
Le 16 octobre 1990, il imprimerait « Meeting with Bob on Thursday » (Rencontre avec Bob le jeudi).
Le 17 octobre 1990, il imprimerait "Rencontre avec Bob demain".
Le 18 octobre 1990, il imprimerait « Meeting with Bob today ».
%d est remplacé par "journée", le jour du mois.
%e est remplacé par "sur jj-mm-aaaa"
%f est remplacé par "sur jj-mm-aaaa"
%g est remplacé par "sur jour de la semaine, journée mois"
%h est remplacé par "sur jj-mm"
%i est remplacé par "sur mm-jj"
%j est remplacé par "sur jour de la semaine, mois jour-ème, une année" Ce formulaire ajoute les caractères
"st", "nd", "rd" ou "th" jusqu'au jour du mois, selon le cas.
%k est remplacé par "sur jour de la semaine, mois jour-ème"
%l est remplacé par "sur aaaa-mm-dd"
%m est remplacé par "mois", le nom du mois.
%n est remplacé par le numéro (1 à 12) du mois.
%o est remplacé par " (aujourd'hui)" si et seulement si la date système actuelle est la même que
la date utilisée par Rappeler comme date du jour. Rappelez-vous que vous pouvez spécifier un
date pour Rappeler à utiliser sur la ligne de commande. Cette substitution n'est généralement pas
utile dans un REM commande, mais est utile dans un BANNIÈRE commander. (Voir « La BANNIÈRE
Commander.")
%p est remplacé par "s" si le diff entre la date actuelle et la date de déclenchement est
pas 1. Vous pouvez l'utiliser pour créer des rappels comme :
REM 1er janvier +4 MSG %x jour%p avant le Nouvel An !
%q est remplacé par "'s" si le diff entre la date de déclenchement et la date actuelle est
1. Sinon, il est remplacé par "s'" Cela peut être utilisé comme suit :
REM 1er janvier +4 MSG Nouvel An dans %x jour%q heure !
%r est remplacé par le jour du mois (01 à 31) complété par un zéro non significatif si
nécessaire pour compléter à deux chiffres.
%s est remplacé par "st", "nd", "rd" ou "th" selon le jour du mois.
%t est remplacé par le numéro du mois (01 à 12) complété à deux chiffres avec un
zéro non significatif.
%u est remplacé par "sur jour de la semaine, jour-ème mois, une année« Ceci est similaire à %a sauf
que "st", "nd", "rd" ou "th" est ajouté au journée selon le cas.
%v est remplacé par "sur jour de la semaine, jour-ème mois"
%w est remplacé par "en semaine", le nom du jour de la semaine.
%x est remplacé par le diff entre la date du jour et la date de déclenchement. le diff
est défini comme le nombre réel de jours entre ces deux dates ; OMIT ne sont pas
dénombré. (Une soustraction de date stricte est effectuée.)
%y est remplacé par "une année", l'année de la date de déclenchement.
%z est remplacé par "yy", les deux derniers chiffres de l'année.
%_ (pourcentage-souligné) est remplacé par une nouvelle ligne. Vous pouvez l'utiliser pour obtenir
rappels multilignes.
%1 est remplacé par "maintenant", "m dans quelques minutes", "m il y a quelques minutes", "h heures à partir de maintenant",
"h il y a des heures", "h heures et m minutes à partir de maintenant" ou "h heures et m il y a quelques minutes", comme
approprié pour un rappel programmé. Notez qu'à moins que vous ne spécifiiez le -a option,
les rappels programmés seront déclenchés comme des rappels normaux, et donc un rappel programmé
qui s'est produit plus tôt dans la journée peut être déclenché. Cela entraîne la nécessité de la
formulaires "... il y a".
%2 est remplacé par "à hh:mmam" ou "..pm" selon le AT l'heure du rappel.
%3 est remplacé par "à hh:mm" au format 24 heures.
%4 est remplacé par "mm" où mm est le nombre de minutes entre "maintenant" et l'heure
spécifié par AT. Si l' AT l'heure est antérieure à l'heure actuelle, alors le résultat
est négatif.
%5 est remplacé par "ma" où ma est la valeur absolue du nombre produit par %4.
%6 est remplacé par "il y a" ou "à partir de maintenant", selon la relation entre le AT
l'heure et l'heure actuelle.
%7 est remplacé par le nombre d'heures entre le AT l'heure et l'heure actuelle. Ce
est toujours non négatif.
%8 est remplacé par le nombre de minutes entre le AT l'heure et l'heure actuelle,
après les heures (%7) ont été soustraits. Il s'agit d'un nombre allant de 0 à
59.
%9 est remplacé par "s" si la valeur produite par %8 n'est pas 1.
%0 est remplacé par "s" si la valeur produite par %7 n'est pas 1.
%! est remplacé par "is" si l'heure actuelle est avant le AT temps, ou "était" s'il est
après.
%@ est similaire à %2 mais affiche l'heure actuelle.
%# est similaire à %3 mais affiche l'heure actuelle.
%" (percent-doublequote - ") est supprimé. Cette séquence n'est pas utilisée par le
filtre de substitution, mais est utilisé pour dire Rappeler quel texte inclure dans un calendrier
entrée lorsque le -c, -s or -p l'option est choisie. Voir "Mode Calendrier"
Notes:
o Rappeler imprime normalement une ligne vierge après chaque rappel ; si le dernier caractère de
le corps est "%", la ligne vide ne sera pas imprimée.
o Les substitutions a, b, c, e, f, g, h, i, j, k, l, u et v toutes sont remplacées par
« aujourd'hui » si la date du jour est égale à la date de déclenchement, ou « demain » si le déclencheur
la date est un jour après la date actuelle. Ainsi, ils sont pas le même que
substitutions construites à partir des séquences %w, %y, etc. plus simples.
o N'importe laquelle des substitutions traitant du temps (0 à 9 et '!') produit un
résultats s'il est utilisé dans un rappel qui n'a pas de AT mot-clé. Aussi, si un
le rappel a un delta et pouvant être déclenchée sur plusieurs jours, les substitutions horaires
ignorer la date. Ainsi, le %1 substitution peut signaler qu'une réunion est dans 15
minutes, par exemple, même si ce n'est que dans 2 jours, car un delta
a déclenché le rappel. Il est recommandé d'utiliser les substitutions de temps
uniquement dans les rappels chronométrés sans delta qui sont conçus pour être mis en file d'attente pour
Activation.
o Les majuscules peuvent être utilisées dans la séquence de substitution, auquel cas la première
caractère de la chaîne substituée est en majuscule (s'il s'agit normalement d'une minuscule
lettre.)
o Tous les autres caractères suivant un signe "%" sont simplement copiés. En particulier, pour obtenir
une déconnexion "%", utilisez "%%" dans le corps. Pour commencer le corps d'un rappel par un
espace, utilisez "% ", car Rappeler recherche normalement le premier caractère non espace
après l'entraînement GMS, CAL or COURT jeton.
L' OMETTRE COMMAND
En plus d'être un mot-clé dans le REM commander, OMETTRE est une commande à part entière.
Sa syntaxe est :
OMETTRE journée mois [une année]
ou:
OMETTRE day1 mois1 year1 PAR day2 mois2 year2
Votre OMETTRE La commande est utilisée pour omettre "globalement" certains jours (généralement des jours fériés). Ces
les jours omis globalement sont ignorés par les formes "-" et "+" de RETOUR et delta. Certains
exemples:
OMETTRE 1 janv.
OMIT 7 sept. 1992
Le premier exemple spécifie un jour férié qui se produit à la même date chaque année - le jour de l'an
Jour. Le deuxième exemple spécifie un jour férié qui change chaque année - la fête du Travail. Pour
ces types de jours fériés, vous devez créer un OMETTRE commande pour chaque année. (Plus tard, dans le
description des expressions et certaines des fonctionnalités les plus avancées de Rappeler, tu verras
comment automatiser cela pour certains cas.)
Comme avec la commande REM, vous pouvez utiliser des spécificateurs abrégés pour les dates ; les suivants sont
équivalent:
OMIT 7 sept. 1992
Omettre 1992-09-07
Pour plus de commodité, vous pouvez utiliser un delta et MSG or COURT mot-clé dans le OMETTRE commander. le
les séquences suivantes sont équivalentes :
OMETTRE 1 janv.
REM 1er janvier +4 MSG Le jour de l'an est %b !
et
OMIT 1er janvier +4 MSG Le jour de l'an est %b !
Votre PAR Le mot-clé vous permet d'omettre une plage de jours de manière pratique. Le début et la fin
les points doivent être entièrement spécifiés (c'est-à-dire qu'ils doivent inclure le jour, le mois et l'année). Par example,
les séquences suivantes sont équivalentes :
OMIT 3 janv. 2011
OMIT 4 janv. 2011
OMIT 5 janv. 2011
et
OMETTRE DU 3 janv. 2011 AU 5 janv. 2011
Vous pouvez faire un TRAVERS OMETTRE faire double emploi en tant que REM commander:
OMIT 6 sept. 2010 AU 10 sept. 2010 Vacances MSG
Vous pouvez déboguer vos OMIT globaux avec la commande suivante :
OMETTRE LA VIDANGE
La commande OMIT DUMP imprime les omissions globales actuelles sur la sortie standard.
L' AVANT DE, APRÈS ET SKIP MOTS-CLÉS
Normalement, les jours qui sont omis, que ce soit par un OMETTRE commande ou le local OMETTRE or
OMITFUNC mots-clés dans un REM l'instruction, n'affecte que le comptage du -RETOUR ou le +delta.
Par exemple, supposons que vous ayez une réunion tous les mercredis. Supposons aussi que vous ayez
indiqué le 11 novembre comme jour férié :
OMIT 11 novembre +4 Jour du Souvenir du MSG
REM Mer +1 Réunion Code MSG %b.
La séquence ci-dessus rappellera une réunion du 11 novembre 1992, qui est une
Mercredi. Ceci est probablement incorrect. Il y a trois options :
AVANT DE Ce mot-clé déplace le rappel avant les jours omis. Ainsi, dans ce qui précède
exemple, l'utilisation de AVANT DE provoquerait le déclenchement du rappel de rendez-vous le mardi,
10 Novembre 1992.
APRÈS Ce mot-clé déplace le rappel après les jours omis. Dans l'exemple ci-dessus,
le rappel de réunion serait déclenché le jeudi 12 novembre 1992.
SKIP Ce mot-clé fait que le rappel est complètement ignoré les jours omis.
Ainsi, dans l'exemple ci-dessus, le rappel ne serait pas déclenché le 11 novembre
1992. Cependant, il serait déclenché comme d'habitude le mercredi suivant, 18
Novembre 1992.
Votre AVANT DE et APRÈS les mots-clés déplacent la date de déclenchement d'un rappel avant ou après un
bloc de jours omis, respectivement. Supposons que vous exécutiez normalement une sauvegarde le premier jour
du mois. Cependant, si le premier jour du mois est un week-end ou un jour férié, vous exécutez le
sauvegarde le premier jour ouvrable suivant le week-end ou le jour férié. Vous pouvez utiliser :
REM 1 OMIT Sam Dim APRÈS L'EXÉCUTION do_backup
Examinons comment la date de déclenchement est calculée. le 1 précise le premier jour de la
mois. Le local OMETTRE mot-clé provoque le APRÈS mot-clé pour faire avancer le rappel au-delà
fins de semaine. Finalement, le APRÈS mot-clé continuera à faire avancer le rappel jusqu'à ce qu'il ait
passé tous les jours fériés spécifiés avec global OMETTRE les commandes.
L' COMPRENDRE COMMAND
Rappeler vous permet d'inclure d'autres fichiers dans votre script de rappel, similaire au C
directive #include du préprocesseur. Par exemple, votre administrateur système peut maintenir un
fichier de vacances ou de rappels à l'échelle du système. Vous pouvez les inclure dans votre script de rappel
comme suit:
INCLURE /usr/partager/rappeler/vacances
INCLURE /usr/share/rappel/rappels
(Les noms de chemin réels varient d'un système à l'autre - demandez à votre administrateur système.)
COMPRENDRE les fichiers peuvent être imbriqués jusqu'à une profondeur de 8.
Si vous spécifiez un nom de fichier de "-" dans le COMPRENDRE commander, Rappeler commencera à lire à partir de
entrée standard.
Si vous spécifiez un annuaire comme argument de COMPRENDRE, puis Rappeler traitera tous les fichiers
dans ce répertoire qui correspond au modèle de shell "*.rem". Les fichiers sont traités en triés
ordre; l'ordre de tri correspond à celui utilisé par le shell lorsqu'il développe "*.rem".
L' COURT COMMAND
Si vous incluez d'autres fichiers dans votre script de rappel, vous ne ferez peut-être pas toujours entièrement confiance au
contenu des autres fichiers. Par exemple, ils peuvent contenir COURT -type de rappels qui pourraient
être utilisé pour accéder à vos fichiers ou effectuer des actions indésirables. le COURT la commande peut restreindre
ceci : si vous incluez la commande COURT de remise dans votre script de rappel de niveau supérieur, tout rappel
ou l'expression qui exécuterait normalement une commande système est désactivée. COURT ON va re-
permettre l'exécution des commandes système. Notez que le COURT ON la commande peut uniquement être utilisé dans
votre script de rappel de niveau supérieur ; ce sera pas travailler dans tous les fichiers accédés par le COMPRENDRE
commander. C'est pour vous protéger de quelqu'un qui place un COURT ON commande dans un inclus
déposer. Cependant, le COURT de remise La commande peut être utilisée au niveau supérieur ou dans un fichier inclus.
Si vous courez Rappeler couplé à -r option de ligne de commande, COURT -type de rappels et le coquille()
fonction sera désactivée, indépendamment de tout COURT commandes dans le script de rappel.
Cependant, toute commande fournie avec le -k l'option sera toujours exécutée.
Une utilisation du COURT commande est de fournir une interface sécurisée entre Rappeler et la orme
système de messagerie. le orme le système peut analyser automatiquement le courrier entrant pour un rappel ou un calendrier
entrées et placez-les dans votre fichier de calendrier. Pour utiliser cette fonction, vous devez définir le
option de nom de fichier de calendrier sous orme être quelque chose comme "~/.rappels.in", pas votre principal
fichier de rappel ! C'est pour que tout COURT ON les commandes qui vous sont envoyées par la poste ne peuvent jamais être activées.
Ensuite, vous pouvez utiliser le orme balayage message pour calendrier entrées commande pour placer des rappels
préfacé par "->" dans .reminders.in. Dans votre fichier .reminders principal, incluez les éléments suivants
lignes:
RUN OFF # Désactiver RUN
INCLURE .rappels.in
RUN ON # Réactiver RUN
Par ailleurs, Rappeler contient quelques autres fonctionnalités de sécurité. Il ne lira pas un fichier qui
est accessible en écriture par le groupe ou par le monde. Il n'exécutera pas set-uid. S'il lit un fichier que vous ne possédez pas,
cela désactivera RUN et la fonction shell(). Et s'il est exécuté comme racine, il ne lira que
fichiers appartenant à racine.
L' BANNIÈRE COMMAND
Quand Rappeler émet d'abord un rappel, il imprime un message comme celui-ci :
Rappels du vendredi 30 octobre 1992 (aujourd'hui) :
(La bannière n'est pas imprimée si l'une des options de production de calendrier est utilisée, ou si le -k
l'option est utilisée.)
Votre BANNIÈRE La commande vous permet de changer le format. Il doit apparaître avant tout REM les commandes.
Le format est:
BANNIÈRE le format
Votre le format est similaire à la corps d'un REM commander. Il est passé par la substitution
filtre, avec un déclencheur implicite de la date système actuelle. Ainsi, la bannière par défaut est
équivalent à:
BANNER Rappels pour %w, %d%s %m, %y%o :
Vous pouvez désactiver complètement la bannière avec BANNER %. Ou vous pouvez créer une bannière personnalisée :
BANNER Bonjour, voici vos rappels pour %y-%t-%r :
CONTRLE L' OMETTRE CONTEXTE
Parfois, il est nécessaire de changer temporairement le global OMIT qui sont en vigueur pour une
quelques rappels. Trois commandes vous permettent de le faire :
POUSSER-OMETTRE-CONTEXTE
Cette commande enregistre le global actuel OMIT sur une pile interne.
EFFACER-OMETTRE-CONTEXTE
Cette commande efface tous les OMIT, en partant d'une « table rase ».
POP-OMIT-CONTEXTE
Cette commande restaure le OMIT qui ont été enregistrés par le plus récent POUSSER-
OMIT-CONTEXTE.
Par exemple, supposons que vous ayez un bloc de rappels qui nécessitent un OMETTRE contexte, et
qu'ils introduisent également des mondiales indésirables OMIT cela pourrait interférer avec les rappels ultérieurs.
Vous pouvez utiliser le fragment suivant :
PUSH-OMIT-CONTEXT # Sauvegarde le contexte actuel
CLEAR-OMIT-CONTEXT # Nettoyer l'ardoise
# Le bloc de rappels va ici
POP-OMIT-CONTEXT # Restaure le contexte d'omission enregistré
EXPRESSIONS
Dans certains contextes, qui seront décrits plus loin, Rappeler acceptera des expressions pour évaluation.
Rappeler les expressions ressemblent aux expressions C, mais opèrent sur différents types d'objets.
DONNEES TYPES
Rappeler les expressions opèrent sur cinq types d'objets :
INT Votre INT Le type de données est constitué des entiers représentables dans un mot machine. le
INT le type de données correspond au type C "int".
STRING Votre STRING Le type de données se compose de chaînes de caractères. c'est un peu comparable
à un tableau de caractères C, mais ressemble plus au type de chaîne en BASIC.
Votre Le type de données se compose d'heures de la journée. le le type de données est interne
stocké sous forme d'entier représentant le nombre de minutes depuis minuit.
DATES Votre DATES type de données se compose de dates (postérieures au 1er janvier 1990.) En interne, DATES
les objets sont stockés en nombre de jours depuis le 1er janvier 1990.
Datetime
Votre Datetime type de données se compose d'une date et d'une heure ensemble. Intérieurement, Datetime
les objets sont stockés en nombre de minutes depuis minuit, le 1er janvier 1990. Vous
peut penser à un Datetime objet comme étant la combinaison de DATES et des pièces.
CONSTANTES
Les exemples suivants illustrent les constantes dans Rappeler expressions:
INT des constantes
12, 36, -10, 0, 1209
STRING des constantes
"Bonjour", "Ceci est un test", "\n\gosd\w", ""
Notez que la chaîne vide est représentée par "", et que des barres obliques inverses dans une chaîne
pas interprétés spécialement, comme dans C.
des constantes
12h33, 0h01, 14h15, 16h42, 12.16h13.00, 1.11hXNUMX, XNUMXhXNUMX
Notez que les constantes sont écrites au format 24 heures. Soit le point ou les deux points
peut être utilisé pour séparer les minutes des heures. Cependant, Remind
afficher les heures de manière cohérente en utilisant un seul caractère de séparation. (Le résultat
le caractère de séparation est choisi au moment de la compilation.)
DATES des constantes
DATES les constantes sont exprimées sous la forme « aaaa/mm/jj » ou « aaaa-mm-jj », et les guillemets simples
must être fourni. Cela distingue les constantes de date de la division ou de la soustraction
d'entiers. Exemples:
´1993/02/22', '1992-12-25', '1999/01/01'
Notez que DATES les valeurs sont imprimé sans les guillemets. Bien que '-' ou '/'
est accepté comme séparateur de date en entrée, lorsque les dates sont imprimées, un seul sera
utilisé. Le choix d'utiliser '-' ou '/' est fait au moment de la compilation. Notez également
que les versions de Rappeler avant 03.00.01 ne prenait pas en charge les constantes de date. Dans ces
versions, vous devez créer des dates à l'aide du Date() une fonction. De plus, les versions antérieures à
03.00.02 ne prenait pas en charge le séparateur de date « - ».
Datetime des constantes
Datetime les constantes sont exprimées de la même manière que DATES constantes avec l'ajout de
une partie "@HH:MM". Par example:
´2008-04-05@23:11', '1999/02/03@14:06', '2001-04-07@08:30'
Datetime les valeurs sont imprimées sans les guillemets. Remarques sur la date et l'heure
caractères de séparation pour DATES et les constantes s'appliquent également à Datetime constantes.
LES OPÉRATEURS
Rappeler a les opérateurs suivants. Les opérateurs sur la même ligne ont la même priorité,
tandis que les opérateurs des lignes inférieures ont une priorité inférieure à ceux des lignes supérieures. le
les opérateurs correspondent approximativement aux opérateurs C.
! - (négation logique unaire et négation arithmétique)
* /%
+ -
<<=>> =
==! =
&&
||
DESCRIPTION OF LES OPÉRATEURS
! Négation logique. Peut être appliqué à un INT taper. Si l'opérande est non nul,
renvoie zéro. Sinon, renvoie 1.
- Unaire moins. Peut être appliqué à un INT. Renvoie le négatif de l'opérande.
* Multiplication. Renvoie le produit de deux INTs.
/ Division entière. Renvoie le quotient de deux INTs, en éliminant le reste.
% Module. Renvoie le reste en divisant un INT par un autre.
+ A plusieurs utilisations. Ceux-ci sont:
INT + INT - renvoie la somme de deux INTs.
INT + or + INT - renvoie un obtenu en ajoutant INT minutes à la
original .
INT + DATES or DATES + INT - renvoie un DATES obtenu en ajoutant INT jours à la
original DATES.
INT + Datetime or Datetime + INT - renvoie un Datetime obtenu en ajoutant INT
minutes à l'original Datetime.
STRING + STRING - renvoie un STRING c'est la concaténation des deux originaux
STRINGs.
STRING + n'importe quoi ou n'importe quoi + STRING - convertit le non-STRING argument à un
STRING, puis effectue la concaténation. Voir le contraindre() la fonction.
- A plusieurs utilisations. Ceux-ci sont:
INT - INT - renvoie la différence de deux INTs.
DATES - DATES - renvoie (en tant que INT) la différence en jours entre deux DATESs.
- - renvoie (en tant que INT) la différence en minutes entre deux s.
Datetime - Datetime - renvoie (en tant que INT) la différence en minutes entre deux
Datetimes.
DATES - INT - renvoie un DATES qui est INT jours plus tôt que l'original DATES.
- INT - renvoie un qui est INT minutes plus tôt que l'original .
Datetime - INT - renvoie un Datetime qui est INT minutes plus tôt que l'original
Datetime.
<, <=, >, et >=
Ce sont les opérateurs de comparaison. Ils peuvent prendre des opérandes de n'importe quel type, mais les deux
les opérandes doivent être du même type. Les opérateurs de comparaison renvoient 1 si le
la comparaison est vraie, ou 0 si elle est fausse. Notez que la comparaison de chaînes est effectuée
suivant l'ordre lexical des caractères sur votre système, et que les majuscules et les
minuscules distincte pour ces opérateurs.
==, != == teste l'égalité, renvoyant 1 si ses opérandes sont égaux et 0 s'ils le sont
ne pas. != tests d'inégalité.
Si les opérandes ne sont pas du même type, == renvoie 0 et != renvoie 1. Encore une fois,
les comparaisons de chaînes sont sensibles à la casse.
&& Il s'agit de l'opérateur ET logique. Ses deux opérandes doivent être de type INT. Il
renvoie 1 si les deux opérandes sont différents de zéro, et 0 sinon.
|| Il s'agit de l'opérateur OU logique. Ses deux opérandes doivent être de type INT. Il
renvoie 1 si l'un des opérandes est différent de zéro et 0 sinon.
NOTES
Les opérateurs d'égale priorité sont toujours évalué de gauche à droite, sauf si
les parenthèses dictent le contraire. Ceci est important, car l'opérateur "+" amélioré est
pas forcément associatif. Par example:
1 + 2 + "string" + 3 + 4 donne "3string34"
1 + (2 + "string") + (3 + 4) donne "12string7"
12:59 + 1 + "test" donne "13:00test"
12:59 + (1 + "test") donne "12:591test"
Les opérateurs logiques sont pas opérateurs dits de court-circuit, comme en C. Les deux
les opérandes sont toujours évalués. Ainsi, une expression telle que :
(f!=0) && (100/f <= 3)
provoquera une erreur si f vaut zéro.
VARIABLES
Rappeler vous permet d'affecter des valeurs aux variables. le SET La commande est utilisée comme suit :
SET var expr
Chaque est le nom d'une variable. Il doit commencer par une lettre ou un trait de soulignement et consister en
uniquement des lettres, des chiffres et des traits de soulignement. Seuls les 12 premiers caractères d'un nom de variable
sont significatifs. Les noms de variables sont pas sensible aux majuscules et minuscules; ainsi, "Afoo" et "afOo" sont les
même variable. Exemples:
RÉGLER un 10 + (9*8)
SET b "Ceci est un test"
SET monrép getenv("HOME")
SET heure 12:15
FIXER la date aujourd'hui()
Notez que les variables elles-mêmes n'ont pas de type. Ils prennent le type de tout ce que vous stockez
en eux.
Pour supprimer une variable, utilisez le UNSET commander:
UNSET var [var...]
Par exemple, pour supprimer toutes les variables déclarées ci-dessus, utilisez :
UNSET ab mydir time date
SYSTÈME VARIABLES
En plus des variables utilisateur habituelles, Rappeler a plusieurs "variables système" qui sont
utilisé pour interroger ou contrôler l'état de fonctionnement de Rappeler. Les variables système sont disponibles
à partir de la version 03.00.07 de Rappeler.
Toutes les variables système commencent par un signe dollar « $ ». Ils peuvent être utilisés dans SET commandes et
expressions tout comme les variables régulières peuvent. Toutes les variables système contiennent toujours les valeurs d'un
type spécifié. De plus, certaines variables système ne peuvent pas être modifiées et vous ne pouvez pas
créer de nouvelles variables système. Les variables système peuvent être initialisées sur la ligne de commande avec
le -i option, mais vous devrez peut-être les citer pour éviter que le shell interprète le
signe dollar. Les noms de variables système ne sont pas sensibles à la casse.
Les variables système suivantes sont définies. Ceux marqués "lecture seule" ne peuvent pas être modifiés
couplé à SET commander. Toutes les variables système contiennent des valeurs de type INT, sauf indication contraire
spécifié.
$CalcUTC
Si 1 (valeur par défaut), alors Rappeler utilise les fonctions de la bibliothèque C pour calculer le nombre de
minutes entre l'heure locale et l'heure universelle coordonnée. Cela affecte l'astronomie
calculs (lever du soleil() par exemple.) Si 0, alors vous devez fournir le nombre de
minutes entre le temps local et le temps universel coordonné dans le $MinsDepuisUTC Système
variable.
$CalMode (lecture seulement)
Si différent de zéro, alors le -c L'option a été fournie sur la ligne de commande.
$Démon (lecture seulement)
Si le mode démon -z a été invoqué, contient le nombre de minutes entre les réveils.
S'il ne s'exécute pas en mode démon, contient 0.
$DateSep
Cette variable ne peut être définie que sur "/" ou "-". Il contient le caractère utilisé pour
parties séparées d'une date lorsque Rappeler imprime une valeur DATE ou DATETIME.
$Prio par défaut
La priorité par défaut attribuée aux rappels sans PRIORITÉ clause. Vous pouvez définir
ceci au besoin pour ajuster les priorités des blocs de rappels sans avoir à
tapez les priorités pour les rappels individuels. Au démarrage, $Prio par défaut est mis à 5000 ;
il peut aller de 0 à 9999.
$Ne pasfourcher (lecture seulement)
Si différent de zéro, alors le -c L'option a été fournie sur la ligne de commande.
$DontTrigAts (lecture seulement)
Le nombre de fois que le -a L'option a été fournie sur la ligne de commande.
$Ne pasQueue (lecture seulement)
Si différent de zéro, alors le -q L'option a été fournie sur la ligne de commande.
$FinEnvoyé (CHAÎNE DE CARACTÈRES Type d')
Contient une liste de caractères qui terminent une phrase. le MSF le mot-clé insère deux
espaces après ces caractères. Initialement, $FinEnvoyé est réglé sur ".!?" (point final,
point d'exclamation et point d'interrogation.)
$FinEnvoyéIg (CHAÎNE DE CARACTÈRES Type d')
Contient une liste de caractères qui doivent être ignorés lorsque MSF décide si ou
de ne pas placer deux espaces après une phrase. Initialement, est défini sur "'>)]}"+CARBONISER(34)
(guillemet simple, supérieur à, parenthèse droite, crochet droit, accolade droite et
double citation.)
Par exemple, les valeurs par défaut fonctionnent comme suit :
MSF Il a dit : « Huh ! (Deux espaces suivront.) » Ouaip.
parce que la dernière parenthèse et la citation sont ignorées (à des fins d'espacement)
quand ils suivent une période.
$PremierRetrait
Le nombre d'espaces de retrait de la première ligne d'un MSF-type rappel. le
la valeur par défaut est 0.
$FoldAnnée
Les fonctions standard de la bibliothèque Unix peuvent avoir des difficultés à gérer les dates plus tard
supérieur à 2037. Si cette variable est définie sur 1, alors les calculs UTC « replient »
ans après 2037 avant d'utiliser les fonctions de la bibliothèque Unix. Par exemple, pour
savoir si l'heure d'été est en vigueur ou non en juin 2077, l'année
est « replié » à 2010, car les deux années commencent un lundi et les deux ne sont pas
années bissextiles. Les règles de l'heure d'été sont donc présumées identiques
pour les deux années, et les fonctions de la bibliothèque Unix peuvent gérer 2010. Par défaut, cette
variable est 0. Réglez-le sur 1 si les fonctions soleil ou UTC se comportent mal pendant des années
que 2037.
$FormeLargeur
La largeur maximale de chaque ligne de texte pour le formatage MSF-type rappels. le
la valeur par défaut est 72. Si un MSF-type rappel contient un mot trop long pour tenir dans ce
largeur, elle ne sera pas tronquée - la limite de largeur sera ignorée.
$Mode Chut (lecture seulement)
Si différent de zéro, alors le -h L'option a été fournie sur la ligne de commande.
$IgnorerUne fois (lecture seulement)
Si différent de zéro, alors le -o option a été fournie sur la ligne de commande, ou une date
différente de la vraie date d'aujourd'hui a été fournie. Si non nul, alors UNE FOIS QUE directives
Sera ignoré.
$InfDelta (lecture seulement)
Si différent de zéro, alors le -t L'option a été fournie sur la ligne de commande.
$LatDeg, $LatMin, $LatSec
Ceux-ci spécifient la latitude de votre emplacement. $Dég Lat peut aller de -90 à 90, et
les autres de -59 à 59. Les latitudes nord sont positives ; ceux du sud sont
négatif. Pour les latitudes sud, les trois composantes doivent être négatives.
$Emplacement (CHAÎNE DE CARACTÈRES Type d')
Il s'agit d'une chaîne spécifiant le nom de votre emplacement. C'est généralement le nom de
votre ville ou ville. Il peut être réglé à votre guise, mais un bon style indique
qu'il doit rester cohérent avec les variables du système de latitude et de longitude.
$LongDeg, $LongMin, $LongueSec
Ceux-ci spécifient la longitude de votre emplacement. $LongDeg peut aller de -180 à 180.
Les longitudes occidentales sont positives; ceux de l'Est sont négatifs. Notez que les trois
composants doivent avoir le même signe : tous positifs pour les longitudes occidentales et tous
négatif pour les longitudes orientales.
Les informations de latitude et de longitude sont requises pour les fonctions lever du soleil() et
le coucher du soleil(). Les valeurs par défaut peuvent être compilées dans Rappeler, ou tu peux SET l'correcte
valeurs au début de vos scripts de rappel.
$MaxSatIter
Le nombre maximum d'itérations pour le SATISFAIRE clause (décrite plus loin.) Doit être
au moins 10.
$MinsDepuisUTC
Le nombre de minutes entre l'heure universelle coordonnée et l'heure locale. Si
$CalcUTC est différent de zéro, il est calculé au démarrage de Rappeler. Sinon, vous
doit le définir explicitement. Si $CalcUTC est nul, alors $MinsDepuisUTC est utilisé dans le
calculs astronomiques. Vous devez l'ajuster vous-même à l'heure d'été.
De plus, si vous souhaitez initialiser $MinsDepuisUTC en utilisant l' -i option de ligne de commande, vous
doit également définir $CalcUTC à 0 avec le -i option.
$ModeSuivant (lecture seulement)
Si différent de zéro, alors le -n L'option a été fournie sur la ligne de commande.
$NumQueued (lecture seulement)
Contient le nombre de rappels mis en file d'attente jusqu'à présent pour un déclenchement temporisé en arrière-plan.
$NumTrig (lecture seulement)
Contient le nombre de rappels déclenchés pour la date actuelle. Une utilisation pour cela
variable est la suivante : supposons que vous souhaitiez ombrer dans la boîte d'un PostScript
calendrier chaque fois qu'un jour férié est déclenché. Vous pourriez économiser la valeur de $NumTrig in
une variable régulière avant d'exécuter un bloc de rappels de vacances. Si la valeur
of $NumTrig après que le bloc de vacances est supérieur à la valeur enregistrée, alors au moins
un jour férié a été déclenché, et vous pouvez exécuter la commande pour ombrager dans le calendrier
boîte. (Voir la section "Mode Calendrier".)
Notez que $NumTrig est affectée uniquement by REM commandes ; déclencheurs dans IFTRIG les commandes font
pas l'affecter.
$PrefixLineNon (lecture seulement)
Si différent de zéro, alors le -l L'option a été fournie sur la ligne de commande.
$PSCal (lecture seulement)
Si différent de zéro, alors le -p L'option a été fournie sur la ligne de commande.
$Récupère (lecture seulement)
Si différent de zéro, le COURT les directives sont désactivées.
$SimpleCal (lecture seulement)
Définir sur une valeur non nulle si non plus des -p or -s les options de ligne de commande étaient
fourni.
$TrierParDate (lecture seulement)
Mettre à 0 si non -g est utilisée, 1 si tri par date dans l'ordre croissant, ou 2 si
tri par date par ordre décroissant.
$TrierParPrio (lecture seulement)
Mettre à 0 si non -g l'option est utilisée, 1 si tri par priorité dans l'ordre croissant, ou 2
si tri par priorité dans l'ordre décroissant.
$TrierParHeure (lecture seulement)
Mettre à 0 si non -g est utilisée, 1 si tri par heure dans l'ordre croissant, ou 2 si
tri par heure par ordre décroissant.
$SubIndent
Le nombre d'espaces par lesquels toutes les lignes (sauf la première) d'un MSF-type rappel
devrait être en retrait. La valeur par défaut est 0.
$T (lecture seulement, DATES Type d')
Exactement équivalent à date de déclenchement(). (Voir FONCTIONS INTÉGRÉES.)
$Td (lecture seulement)
Équivalent à jour(trigdate()).
$M (lecture seulement)
Équivalent à monnum(date de déclenchement()).
Tw$ (lecture seulement)
Équivalent à wkdaynum (date de déclenchement ()).
$T (lecture seulement)
Équivalent à année(trigdate()).
$HeureSep
Cette variable ne peut être définie que sur ":" ou ".". Il contient le caractère utilisé pour
des parties distinctes d'un moment où Rappeler imprime une valeur TIME ou DATETIME.
$UntimedFirst (lecture seulement)
Mis à 1 si le -g l'option est utilisée avec un quatrième caractère de tri de "d" ; mis à 0
autrement.
$U (lecture seulement, DATES Type d')
Exactement équivalent à aujourd'hui(). (Voir FONCTIONS INTÉGRÉES.)
$Ud (lecture seulement)
Équivalent à jour après jour()).
$Euh (lecture seulement)
Équivalent à monnum(aujourd'hui()).
$ Uw (lecture seulement)
Équivalent à wkdaynum(aujourd'hui()).
$Uy (lecture seulement)
Équivalent à année (aujourd'hui()).
Remarque : Si l'un des modes de calendrier est activé, les valeurs de $Daemon, $DontFork,
$DontTrigAts, $DontQueue, $HushMode, $IgnoreOnce, $InfDelta et $NextMode ne sont pas
significatif.
SLIP INTÉGRÉ FONCTIONS
Rappeler a une pléthore de fonctions intégrées. La syntaxe pour un appel de fonction est la même
comme en C - le nom de la fonction, suivi d'une liste d'arguments séparés par des virgules entre parenthèses.
Les noms de fonction ne sont pas sensibles à la casse. Si une fonction ne prend aucun argument, elle doit être
suivi de "()" dans l'appel de fonction. Autrement, Rappeler l'interprétera comme une variable
nom, et ne fonctionne probablement pas correctement.
Dans les descriptions ci-dessous, des formes abrégées sont utilisées pour désigner les types acceptables pour le
arguments. Les caractères "i", "s", "d", "t" et "q" désignent INT, STRING, DATES, et
Datetime arguments, respectivement. Si un argument peut être de plusieurs types, le
les caractères sont concaténés. Par exemple, "di_arg" désigne un argument qui peut être un DATES
ou d’une INT. "x_arg" désigne un argument qui peut être de n'importe quel type. Le type d'argumentation
est suivi d'un trait de soulignement et d'un identifiant nommant l'argument.
Les fonctions intégrées sont :
abs(i_num)
Renvoie la valeur absolue de num.
accès(s_fichier, si_mode)
Teste les autorisations d'accès au fichier filet. Mode peut être une chaîne contenant un
mélange des caractères "rwx" pour lire, écrire et exécuter des tests d'autorisation.
Alternativement, mode peut être un nombre comme décrit dans UNIX accès(2) appel système.
La fonction renvoie 0 si le fichier est accessible avec le mode, et 1
autrement.
args(s_fname)
Renvoie le nombre d'arguments attendus par la fonction définie par l'utilisateur fnom, ou -1
si aucune fonction définie par l'utilisateur n'existe. Notez que cette fonction examine uniquement
des fonctions définies par l'utilisateur, pas des fonctions intégrées. Son utilisation principale est de déterminer
si oui ou non une fonction particulière définie par l'utilisateur a été définie précédemment. le
arguments() fonction est disponible uniquement dans les versions de Rappeler à partir du 03.00.04 et plus.
asc(chaîne_s)
Renvoie un INT c'est le code ASCII du premier caractère de un magnifique. En tant que
cas particulier, asc("") renvoie 0.
baseyr()
Renvoie "l'année de base" qui a été compilée dans Rappeler (normalement 1990.) Toutes les dates
sont stockés en interne sous forme de nombre de jours depuis le 1er janvier de baseyr().
car(i_i1 [,i_i2...])
Cette fonction peut prendre n'importe quel nombre de INT arguments. Il renvoie un STRING constitué
des caractères spécifiés par les arguments. Notez qu'aucun des arguments ne peut
être 0, sauf s'il n'y a qu'un seul argument. Comme cas particulier, carboniser(0) Retour "".
Notez que parce que Rappeler ne prend pas en charge l'échappement de caractères dans les chaînes, le
le seul moyen d'obtenir un guillemet double dans une chaîne est d'utiliser carboniser(34).
choisir(i_index, x_arg1 [,x_arg2...])
Choisir doit prendre au moins deux arguments, dont le premier est un INT. Si indice is
n, puis le nl'argument suivant est renvoyé. Si indice est inférieur à 1, alors
argument1 est retourné. Si indice est supérieur au nombre d'arguments suivants,
alors le dernier argument est retourné. Exemples:
choisir (0, "foo", 1: 13, 1000) renvoie "foo"
choisir (1, "foo", 1: 13, 1000) renvoie "foo"
choisir (2, "foo", 1: 13, 1000) retourne 1:13
choisir (3, "foo", 1: 13, 1000) renvoie 1000
choisir (4, "foo", 1: 13, 1000) renvoie 1000
Notez que tous les arguments de choisir() toujours évalué.
forcer(s_type, x_arg)
Cette fonction convertit arg à l'spécifié type, si une telle conversion est possible.
Type doit être l'un des "INT", "STRING", "DATE", "TIME" ou "DATETIME" (cas-
insensible). Les règles de conversion sont les suivantes :
If arg est déjà de la type spécifié, il est retourné inchangé.
If type est "STRING", alors arg est converti en une chaîne composée de son imprimé
représentation.
If type est "DATE", alors un INT arg est converti en l'interprétant comme le nombre de
jours depuis le 1er janvier baseyr(). A STRING arg est converti en essayant de le lire
comme s'il s'agissait d'une date imprimée. UNE Datetime est converti en une date en supprimant le
composante de temps. UNE arg ne peut pas être converti en une date.
If type est "TIME", alors un INT arg est converti en l'interprétant comme le nombre de
minutes depuis minuit. UNE STRING arg est converti en essayant de le lire comme si
c'était une époque imprimée. UNE Datetime est converti en heure en supprimant la date
composant. UNE DATES arg ne peut pas être converti en une heure.
If type est "DATETIME", alors un INT arg est converti en l'interprétant comme le
nombre de minutes depuis minuit, le 1er janvier baseyr(). A STRING est converti par
en essayant de le lire comme s'il s'agissait d'une datetime imprimée. Les autres types ne peuvent pas être
converti en date/heure.
If type est "INT", alors DATES, et Datetime les arguments sont convertis en utilisant le
inverse des procédures décrites ci-dessus. UNE STRING arg est converti en l'analysant comme
un nombre entier.
actuel()
Renvoie la date et l'heure actuelles sous la forme d'un objet DATETIME. Cela peut être le réel
date et heure, ou peut être la date et l'heure fournies sur la ligne de commande.
date(i_y, je suis, identifiant)
Votre Date() la fonction renvoie un DATES objet avec les composants année, mois et jour
spécifié par y, m et d.
partie de date (dq_datetime)
Renvoie un DATES objet représentant la partie date de datetime.
dateheure(args)
Votre datetime () La fonction peut prendre entre deux et cinq arguments. C'est toujours
renvoie un DATETIME généré à partir de ses arguments.
Si vous fournissez deux arguments, le premier doit être une DATE et le second une HEURE.
Si vous fournissez trois arguments, le premier doit être une DATE et les deuxième et troisième
doivent être des INT. Les deuxième et troisième arguments sont interprétés comme des heures et des minutes
et converti en un TEMPS.
Si vous fournissez quatre arguments, les trois premiers doivent être des INT, interprétés comme le
année, mois et jour. Le quatrième argument doit être un TIME.
Enfin, si vous fournissez cinq arguments, ils doivent tous être des INT et sont interprétés comme
année, mois, jour, heure et minute.
aube([dq_date])
Renvoie l'heure de "l'aube civile" sur le spécifié données. Si données est omis,
Par défaut aujourd'hui(). Si un datetime l'objet est fourni, seul le composant date est
utilisé.
jour(dq_date)
Cette fonction prend un DATES or Datetime comme argument, et renvoie un INT qui est
la composante jour du mois de données.
joursinmon(i_m, je_y)
Renvoie le nombre de jours dans le mois m (1-12) de l'année y.
défini(s_var)
Renvoie 1 si la variable nommée par var est défini, ou 0 si ce n'est pas le cas.
Notez que défini() prend un STRING argument; ainsi, pour vérifier si la variable X est
défini, utilisez :
défini("X")
et pas:
défini(X)
Le deuxième exemple tentera d'évaluer X et renverra une erreur s'il est
indéfini ou non de type STRING.
dosubst(s_str [,j_date [,t_heure]]) or dosubst(s_str [,q_dateheure])
Renvoie un STRING c'est le résultat du passage str via le filtre de substitution
décrit précédemment. Les paramètres données et fois (ou datetime) établir le
date et heure de déclenchement effectives utilisées par le filtre de substitution. Si données et fois
sont omis, ils sont par défaut aujourd'hui() et à présent().
Notez que si str ne se termine pas par "%", un caractère de nouvelle ligne sera ajouté à la
fin du résultat. Aussi, en appelant dosubst() avec données c'est du passé (c'est-à-dire
if données < aujourd'hui()) produira des résultats indéfinis.
Dosubst() n'est disponible qu'à partir de la version 03.00.04 de Rappeler.
crépuscule([dq_date])
Renvoie l'heure du "crépuscule civil" sur le spécifié données. Si données est omis,
Par défaut aujourd'hui().
date de Pâques(dqi_arg)
If arg est un INT, puis renvoie la date du dimanche de Pâques pour l'année spécifiée.
If arg est une DATES or Datetime, puis renvoie la date du prochain dimanche de Pâques le ou
après arg. (Le composant de temps d'une date/heure est ignoré.)
evaltrig(s_trigger [,dq_start])
Évalue déclencher comme s'il s'agissait d'une spécification de déclencheur REM ou IFTRIG et renvoie
la date de déclenchement en tant que DATES (ou en tant que Datetime s'il y a un AT clause.) Renvoie un
négatif INT si aucun déclencheur n'a pu être calculé.
Normalement, évaltrig trouve une date de déclenchement à compter d'aujourd'hui. Si vous fournissez le Commencer
argument, puis il analyse à partir de là.
Par exemple, l'expression :
evaltrig("Lun 1", '2008-10-07')
renvoie '2008-11-03', puisqu'il s'agit de la première date à compter du 7 octobre 2008 à laquelle
satisfait "Lun 1".
Si vous voulez voir combien de jours il s'écoule entre le premier lundi d'octobre 2008 et
le premier lundi de novembre 2008, utilisez :
evaltrig("Lun 1", '2008-11-01') - evaltrig("Lun 1", '2008-10-01')
et la réponse est 28. L'argument déclencheur pour évaltrig peut avoir tout l'habituel
clauses de déclenchement (OMETTRE, AT, SKIP, etc.) mais ne peut pas avoir un SATISFAIRE, MSG, etc.
clause de type rappel.
date du fichier(s_filename)
Renvoie la date de modification de nom de fichier. Si nom de fichier n'existe pas, ou son
la date de modification est antérieure à l'année baseyr(), puis le 1er janvier de baseyr() is
revenu.
filedatetime(s_filename)
Renvoie la date et l'heure de modification de nom de fichier. Si nom de fichier n'existe pas, ou
sa date de modification est antérieure à l'année baseyr(), puis minuit, le 1er janvier de
baseyr() Est retourné.
filer()
Renvoie le répertoire qui contient le fichier en cours de traitement. C'est peut-être un
chemin d'accès relatif ou absolu, mais il est garanti qu'il est correct pour une utilisation dans un
COMPRENDRE commande comme suit:
INCLUDE [filedir()]/truc
Cela inclut le fichier « truc » dans le même répertoire que le fichier en cours
traité.
nom de fichier()
Retours (en tant que STRING) le nom du fichier en cours de traitement par Rappeler.
Dans les fichiers inclus, renvoie le nom du fichier inclus.
getenv(s_envvar)
Semblable à la obtenir(2) appel système. Renvoie une chaîne représentant la valeur de
la variable d'environnement spécifiée. Renvoie "" si la variable d'environnement n'est pas
défini. Notez que les noms des variables d'environnement sont généralement case-
sensible; ainsi, getenv("HOME") n'est pas la même chose que getenv("home").
hebdate(j_jour, s_hebmon [,idq_yrstart [,i_jahr [,i_aflag]]])
Prise en charge des dates hébraïques - voir la section "Le calendrier hébreu"
jour de fête(dq_date)
Prise en charge des dates hébraïques - voir la section "Le calendrier hébreu"
hebmon(dq_date)
Prise en charge des dates hébraïques - voir la section "Le calendrier hébreu"
hebannée(dq_date)
Prise en charge des dates hébraïques - voir la section "Le calendrier hébreu"
heure(tq_time)
Renvoie la composante heure de fois.
si(si_test1, x_arg1, [si_test2, x_arg2,...], x_par défaut)
If test1 n'est pas nul ou la chaîne nulle, renvoie argument1. Sinon, si test2 n'est pas
zéro ou la chaîne nulle, renvoie argument2, etc. Si tous les tester les arguments sont
faux, renvoie défaut. Notez que tous les arguments sont toujours évalué. Cette
fonction accepte un nombre impair d'arguments - notez qu'avant la version 03.00.05
of Rappeler, il n'a accepté que 3 arguments. La version à 3 arguments de sif() is
compatible avec les versions précédentes de Rappeler.
index(s_recherche, s_cible [,Je commence)
Renvoie un INT c'est l'emplacement de l'objectif dans la chaîne recherche. La première
caractère d'une chaîne est numéroté 1. Si l'objectif n'existe pas dans recherche, alors 0 est
revenu.
Le paramètre optionnel Commencer précise la position dans recherche par quoi commencer
à la recherche de l'objectif.
isdst([j_date [,t_heure]]) or isdst(q_datetime)
Renvoie un nombre positif si l'heure d'été est en vigueur sur le spécifié
date et l'heure. Date Par défaut aujourd'hui() et fois par défaut à minuit.
Notez que cette fonction est aussi fiable que les fonctions de la bibliothèque d'exécution C.
Il est disponible à partir de la version 03.00.07 de Rappeler.
îleap(idq_arg)
Renvoie 1 si arg est une année bissextile, et 0 sinon. Arg peut être un INT, DATES or
Datetime objet. Si un DATES or Datetime est fourni, alors la composante année est
utilisé dans l'essai.
isomis(dq_date)
Renvoie 1 si données est omis, étant donné le niveau global actuel OMETTRE le contexte. Renvoie 0
autrement. (Si une date/heure est fournie, seule la partie date est utilisée.) Notez que toute
locales OMETTRE or OMITFUNC les clauses sont pas pris en compte par cette fonction.
Langue()
Renvoie un STRING nommer la langue prise en charge par Rappeler. (Voir "Langue étrangère
Assistance.") Par défaut, Rappeler est compilé pour prendre en charge les messages en anglais, donc ce
la fonction renvoie « Anglais ». Pour les autres langues, cette fonction renverra le
Nom anglais de la langue (par exemple "allemand") Notez que Langue() n'est pas disponible
dans les versions de Rappeler avant 03.00.02.
inférieur(s_string)
Renvoie un STRING avec tous les caractères majuscules dans un magnifique converti en minuscules.
max(x_arg1 [,x_arg2...)
Peut prendre n'importe quel nombre d'arguments et renvoie le maximum. Les arguments peuvent être de
n'importe quel type, mais doivent tous être du même type. Ils sont comparés comme avec le >
opérateur.
min(x_arg1 [,x_arg2...)
Peut prendre n'importe quel nombre d'arguments et renvoie le minimum. Les arguments peuvent être de
n'importe quel type, mais doivent tous être du même type. Ils sont comparés comme avec les
opérateur.
minutesfromutc([d_date [,t_heure]]) or minutesdeutc(q_datetime)
Renvoie le nombre de minutes entre Universal Time Coordinated (anciennement GMT) et
l'heure locale à la date et à l'heure spécifiées. Date Par défaut aujourd'hui() et fois
par défaut à minuit. Si l'heure locale est antérieure à UTC, le résultat est négatif.
Sinon, le résultat est positif.
Notez que cette fonction est aussi fiable que les fonctions de la bibliothèque d'exécution C.
Il est disponible à partir de la version 03.00.07 de Rappeler.
minute(tq_temps)
Renvoie le composant minute de fois.
lun(dqi_arg)
If arg est de DATES or Datetime type, renvoie une chaîne qui nomme le composant du mois
de la date. Si arg est un INT de 1 à 12, renvoie une chaîne qui nomme le mois.
monnum(dq_date)
Renvoie un INT de 1 à 12, représentant la composante mois de données.
date de lune(i_phase [,j_date [,t_heure]]) or date de lune(i_phase, q_dateheure)
Cette fonction renvoie la date de la première occurrence de la phase phase des
lune le ou après données et fois. phase peut aller de 0 à 3, 0 signifiant nouveau
lune, 1 premier quartier, 2 pleine lune et 3 troisième quartier. Si données est omis, il
Par défaut aujourd'hui(). Si fois est omis, la valeur par défaut est minuit.
Par exemple, ce qui suit renvoie la date de la prochaine pleine lune :
SET pleine lune date de lune(2)
heure de la lune(i_phase [,j_date [,t_heure]]) or heure de la lune(i_phase, q_dateheure)
Cette fonction renvoie l'heure de la première occurrence de la phase phase des
lune le ou après données et fois. phase peut aller de 0 à 3, 0 signifiant nouveau
lune, 1 premier quartier, 2 pleine lune et 3 troisième quartier. Si données est omis, il
Par défaut aujourd'hui(). Si fois est omis, la valeur par défaut est minuit. Heure de la lune() is
destiné à être utilisé en conjonction avec date de lune()L’ date de lune() et heure de la lune()
les fonctions sont précises à quelques minutes près des temps dans "Old Farmer's
Almanach" pour Ottawa, Ontario.
Par exemple, ce qui suit renvoie la date et l'heure de la prochaine pleine lune :
MSG Prochaine pleine lune à [heure de la lune(2)] le [date de lune(2)]
lunedateheure(i_phase [,j_date [,t_heure]]) or lunedateheure(i_phase, q_dateheure)
Cette fonction est similaire à date de lune et heure de la lune, mais renvoie un résultat DATETIME.
phase de lune([d_date [,t_heure]]) or phase de lune(q_datetime)
Cette fonction renvoie la phase de la lune sur données et fois, qui par défaut est
aujourd'hui() et minuit, respectivement. La valeur renvoyée est un entier compris entre 0 et
359, représentant la phase de la lune en degrés. 0 est une nouvelle lune, 180 est une pleine
lune, 90 est le premier quartier, etc.
non omis(dq_start, dq_end [,s_wkday...])
Cette fonction renvoie le nombre de non-jours omis entre Commencer et fin. Si
Commencer n'est pas omis, alors il est compté. fin n'est jamais compté.
Notez que fin doit être supérieur ou égal à Commencer ou une erreur est signalée. Dans
en plus d'utiliser le contexte global OMIT, vous pouvez fournir des arguments supplémentaires qui
sont des noms de jours de la semaine à omettre. Cependant, dans un REM commande, n'importe quel local OMITFUNC
la clause est pas pris en compte par cette fonction.
Par exemple, la ligne suivante définit a sur 11 (en supposant qu'il n'y a pas d'OMIT global) :
définir un nonomitted('2007-08-01', '2007-08-16', "Sat", "Sun")
car le jeudi 16 août 2007 est le 11ème jour ouvré (sans compter le samedi et
dimanche) après le mercredi 1er août 2007.
non omis a diverses utilisations. Par exemple, de nombreuses écoles fonctionnent selon un cycle de six jours et
le numéro du jour n'est pas incrémenté les jours fériés. Supposons que l'année scolaire commence par
Jour 1 le 4 septembre 2007. Le rappel suivant étiquettera les numéros de jour dans un
calendrier:
SI aujourd'hui() >= '2007-09-04'
set daynum nonomitted('2007-09-04', today(), "Sat", "Sun")
REM OMIT SAT SUN SKIP CAL Jour [(daynum % 6) + 1]
Endif
De toute évidence, la réponse que vous obtenez de non omis dépend du contexte global OMIT.
Si vous utilisez des OMIT mobiles, vous pouvez obtenir des résultats incohérents.
Voici une utilisation plus complexe pour non omis. Ma collecte des ordures suit deux
cycles de 14 jours entrelacés : Un vendredi, recyclage des ordures et du papier (« Boîte noire »)
sont collectés. Le vendredi suivant, le recyclage des ordures et du plastique ("Blue Box") est
collecté. Si l'une des périodes du lundi au vendredi est un jour férié, la collecte est retardée jusqu'à ce que le
Samedi. Voici un moyen d'encoder ces règles :
fset _garbhol(x) wkdaynum(x) == 5 && nonomis(x-4, x+1) < 5
REM 12 novembre 1999 *14 APRES OMITFUNC _garbhol MSG Black Box
REM 19 novembre 1999 *14 APRES OMITFUNC _garbhol MSG Blue Box
Voici comment cela fonctionne : La fonction définie par l'utilisateur _garbhol(x) renvoie 1 si et seulement
si (1) x est un vendredi et (2) il y a au moins un jour omis du précédent
Du lundi au vendredi inclus.
La première instruction REM met en place le cycle de boîte noire de 14 jours. Le mot-clé APRÈS
fait déplacer la collecte au samedi si _garbhol renvoie 1. Le deuxième REM
l'instruction met en place le cycle de boîte bleue de 14 jours avec un ajustement similaire effectué par AFTER
en collaboration avec _garbhol.
à présent() Renvoie l'heure système actuelle, sous la forme d'un taper. Il peut s'agir de l'heure réelle ou d'un
heure fournie sur la ligne de commande.
ord(i_num)
Renvoie une chaîne qui est le nombre ordinal num. Par exemple, paroles(2) Retours
"2e", et paroles(213) renvoie "213e".
ostype()
Renvoie "UNIX". Remind fonctionnait sous OS/2 et MS-DOS, mais ne fonctionne plus.
pluriel(i_num [,s_str1 [,s_str2]])
Peut prendre de un à trois arguments. Si un argument est fourni, renvoie "s" si
num n'est pas 1, et "" si num est 1.
Si deux arguments sont fournis, renvoie str1 + "s" si num n'est pas 1. Sinon,
Retours str1.
Si trois arguments sont fournis, renvoie str1 if num est 1, et str2 autrement.
psmoon(i_phase [,i_taille [,s_note [,i_notessize]]])
[PÉRIMÉ] Renvoie un STRING composé de code PostScript pour dessiner une lune dans le
coin supérieur gauche de la boîte du calendrier. phase spécifie la phase de la lune,
et vaut 0 (nouvelle lune), 1 (premier quartier), 2 (pleine lune) ou 3 (troisième quartier). Si
Taille est spécifié, il contrôle le rayon de la lune en unités PostScript (1/72
pouce.) S'il n'est pas spécifié ou est négatif, la taille de la police du nombre de jours est
utilisé.
Par exemple, les quatre lignes suivantes placent des symboles de lune sur le PostScript
calendrier:
REM [date de lune(0)] PS [pslune(0)]
REM [date de lune(1)] PS [pslune(1)]
REM [date de lune(2)] PS [pslune(2)]
REM [date de lune(3)] PS [pslune(3)]
If noter est spécifié, le texte est utilisé pour annoter l'affichage de la lune. La police est
la même police utilisée pour les entrées de calendrier. Si taille des notes est donné, il précise le
taille de police à utiliser pour l'annotation, en unités PostScript (1/72 pouce.) Si taille des notes
n'est pas donné, il s'agit par défaut de la taille utilisée pour les entrées de calendrier. (Si vous annotez
l'affichage, veillez à ne pas écraser le numéro du jour -- Rappeler ne vérifie pas
pour cela.) Par exemple, si vous souhaitez afficher l'heure de chaque nouvelle lune, vous pouvez
utilisez ceci dans votre script de rappel :
REM [date de lune(0)] PS [psmoon(0, -1, heure de la lune(0)+"")]
Notez comment le temps est contraint à une chaîne en concaténant la chaîne nulle.
psshade(i_gray) or psshade(i_rouge, je_vert, i_bleu)
[PÉRIMÉ] Renvoie un STRING qui se compose de commandes PostScript pour ombrer un
boîte de calendrier. En peut aller de 0 (complètement noir) à 100 (complètement blanc.)
Si trois arguments sont donnés, ils spécifient l'intensité du rouge, du vert et du bleu de 0 à
100. Voici un exemple d'utilisation :
REM Sam Dim PS [psshade(95)]
La commande ci-dessus émet du code PostScript pour ombrer légèrement les cases pour samedi et
dimanche dans un calendrier PostScript.
Notez que pslune et psshade sont obsolètes ; à la place, vous devez utiliser le SPÉCIAL
Rappels SHADE et SPECIAL MOON comme décrit dans « Rappels hors bande ».
courant réel()
Renvoie (sous forme de DATETIME) la vraie date et l'heure du jour fournies par le
système. Ceci est en contraste avec actuel(), qui peut renvoyer une heure fournie sur le
ligne de commande.
réel ()
Renvoie l'heure réelle fournie par le système d'exploitation. C'est dans
contraste avec à présent(), qui peut renvoyer une heure fournie sur la ligne de commande.
aujourd'hui réel()
Renvoie la date fournie par le système d'exploitation. Ceci est en contraste avec
Rappelerle concept de "aujourd'hui", qui peut être modifié s'il s'exécute dans le calendrier
mode, ou si une date a été fournie sur la ligne de commande.
nsg(i_num)
Renvoie -1 si num est négatif, 1 si num est positif, et 0 si num est zéro.
shell(s_cmd [,i_maxlen])
Exécute cmd en tant que commande système et renvoie les 511 premiers caractères de sortie
résultant de cmd. Tout caractère d'espacement dans la sortie est converti en un
espace. Notez que si COURT de remise a été exécuté, ou le -r l'option de ligne de commande a
déjà utilisé, coquille() entraînera une erreur, et cmd ne sera pas exécuté.
If Maxlen est spécifié, alors coquille() renvoie le premier Maxlen caractères de sortie
(plutôt que le premier 511). Si Maxlen est spécifié comme un nombre négatif, alors tous
la sortie de cmd Est retourné.
diapositive(d_start, je_amt [,s_wkday...])
Cette fonction est l'inverse de non omis. Il ajoute amt jours (qui peuvent être
négatif) à Commencer, pas compte omis jours. L'optionnel jour de la semaine les arguments sont
noms de jours de semaine supplémentaires à omettre.
Considérez cet exemple:
OMIT 14 mai 2009
SET une diapositive('2009-05-13', 5, "Sam", "Sun")
Dans ce cas, a est fixé au 2009-05-21. C'est parce que nous glissons en avant de 5 jours,
hors jeudi 14 mai ou samedi et dimanche 16 et 17 mai. Vous pouvez vous rendre
à l'envers aussi, donc :
OMIT 14 mai 2009
SET une diapositive('2009-05-21', -5, "Sam", "Sun")
prend a retour au 2009-05-13.
strlen(s_str)
Renvoie la longueur de str.
substr(s_str, Je commence [,i_end])
Renvoie un STRING composé de tous les caractères de str Commencer jusqu'à et y compris
fin. Les caractères sont numérotés à partir de 1. Si fin n'est pas fourni, alors il est par défaut
la longueur de str.
lever du soleil ([dq_date])
Renvoie un indiquant l'heure du lever du soleil sur le données (défaut
aujourd'hui().) Dans les hautes latitudes, il peut ne pas y avoir de lever de soleil un jour particulier, au cours duquel
maisons lever du soleil() renvoie le INT 0 si le soleil ne se couche jamais, ou 1440 s'il ne se lève jamais.
coucher de soleil ([dq_date])
Renvoie un indiquant l'heure du coucher du soleil sur le données (défaut
aujourd'hui().) Dans les hautes latitudes, il peut ne pas y avoir de coucher de soleil un jour particulier, dans lequel
maisons le coucher du soleil() renvoie le INT 0 si le soleil ne se lève jamais, ou 1440 s'il ne se couche jamais.
les fonctions lever du soleil() et le coucher du soleil() sont basés sur un algorithme dans "Almanach for
Ordinateurs pour l'année 1978" par LE Doggett, Nautical Almanac Office, USNO. Ils
exiger que la latitude et la longitude soient spécifiées en définissant la valeur appropriée
variables système. (Voir « Variables système ».) Les fonctions du soleil doivent être précises
à environ 4 minutes pour les latitudes inférieures à 60 degrés. Les fonctions sont
disponible à partir de la version 03.00.07 de Rappeler.
heure(i_h, j'en suis)
Crée une avec les composantes heures et minutes spécifiées par hr et m..
partie horaire (tq_datetime)
Renvoie un objet représentant la portion de temps de datetime.
aujourd'hui()
Retours de produits Rappelerla notion d'"aujourd'hui". Il peut s'agir de la date réelle du système ou d'une date
fourni sur la ligne de commande, ou la date de l'entrée de calendrier en cours
calculé.
date de déclenchement()
Renvoie la date de déclenchement calculée du dernier REM or IFTRIG commander. Si utilisé dans
le corps d'un REM commande, renvoie la date de déclenchement de cette commande. Si le plus récent
REM La commande n'a pas donné de date de déclenchement calculable, renvoie l'entier 0.
trigdatetime()
Similaire à trigdate(), mais renvoie un Datetime si le déclencheur le plus récent REM
la commande avait un AT clause. S'il n'y avait pas AT clause, renvoie un DATES. Sinon
le déclencheur a pu être calculé, renvoie l'entier 0.
déclencheur(d_date [,t_heure [,i_utcflag]]) or déclencheur(q_datetime [,i_utcflag])
Renvoie une chaîne adaptée à une utilisation dans un REM commande ou une clause SCAFROM ou UNTIL,
vous permettant de calculer les dates de déclenchement à l'avance. Notez que dans les versions antérieures
of Rappeler, déclencher était nécessaire pour convertir une date en quelque chose que le REM commander
pourrait consommer. Cependant, dans cette version de Rappeler, vous pouvez l'omettre. Noter que
gâchette() toujours renvoie son résultat en anglais, même pour les versions en langue étrangère
of Rappeler. Ceci afin d'éviter des problèmes avec certaines bibliothèques C qui ne gèrent pas
caractères accentués correctement. Normalement, le données et fois sont la date locale et
temps; Toutefois, si utcflag est non nul, le données et fois sont interprétés comme UTC
heures et sont convertis en heure locale. Exemples:
déclencheur('1993/04/01')
renvoie "1 avril 1993",
trigger('1994/08/09', 12:33)
renvoie « 9 août 1994 À 12:33 », comme le fait :
trigger('1994/08/09@12:33').
Enfin:
trigger('1994/12/01', 03:00, 1)
renvoie "30 novembre 1994 À 22:00" pour EST, qui est de 5 heures derrière UTC. le
la valeur de votre fuseau horaire peut différer.
temps de déclenchement()
Renvoie l'heure du dernier REM commande avec un AT clause. Si le dernier REM fait
pas avoir un AT clause, renvoie l'entier 0.
trigvalid()
Renvoie 1 si la valeur renvoyée par date de déclenchement() est valable pour le plus récent REM
commande, ou 0 sinon. Parfois REM les commandes ne peuvent pas calculer une date de déclenchement.
Par exemple, ce qui suit REM la commande ne peut jamais être déclenchée :
REM Mon OMIT Mon SKIP MSG Impossible !
type de (x_arg)
Renvoie "STRING", "INT", "DATE", "TIME" ou "DATETIME", selon le type de
arg.
tzconvert(q_datetime, s_srczone [,s_dstzone])
Convertit datetime du fuseau horaire nommé par zone src au fuseau horaire nommé par
zone d'heure. Si zone d'heure est omis, le fuseau horaire du système par défaut est utilisé. Le retour
la valeur est un DATETIME. Les noms de fuseau horaire dépendent du système ; consultez votre exploitation
système de valeurs juridiques. Voici un exemple:
tzconvert('2007-07-08@01:14', "Canada/Eastern", "Canada/Pacific")
Retours
2007-07-07@22:14
supérieur(s_string)
Renvoie un STRING avec tous les caractères minuscules dans un magnifique converti en majuscule.
valeur(s_varname [,x_default])
Renvoie la valeur de la variable spécifiée. Par exemple, value("X"+"Y") renvoie
la valeur de la variable XY, si elle est définie. Si XY n'est pas défini, une erreur
résultats.
Cependant, si vous fournissez un deuxième argument, il est renvoyé si le varname n'est pas
défini. L'expression value("XY", 0) renverra 0 si XY n'est pas défini, et le
valeur de XY si elle est définie.
version()
Renvoie une chaîne spécifiant la version de Rappeler. Pour la version 03.00.04, renvoie
"03.00.04". Il est garanti qu'en tant que nouvelles versions de Rappeler sont libérés, les
valeur renvoyée par version() augmentera strictement, selon les règles de
ordre des chaînes.
nosemaine([dq_date, [i_wkstart, [i_daystart]]])
Renvoie le numéro de semaine de l'année. Si aucun argument n'est fourni, renvoie l'ISO
8601 numéro de semaine pour aujourd'hui(). Si un argument données est fourni, puis renvoie le
Numéro de semaine ISO 8601 pour cette date. Si deux arguments sont fournis, alors début de semaine
doit être compris entre 0 et 6 et représente le premier jour de la semaine (0 étant
dimanche et 6 étant samedi.). Si début de semaine n'est pas fourni, alors sa valeur par défaut est 1.
Si le troisième argument début de journée est fourni, puis il spécifie quand commence la semaine 1.
If début de journée est inférieur ou égal à 7, alors la semaine 1 commence le premier début de semaine on
ou après janvier début de journée. Sinon, la semaine 1 commence le premier début de semaine sur ou
après décembre début de journée. Si omis, début de journée par défaut à 29 (suivant l'ISO
8601 définition.)
jour de la semaine(dqi_arg)
If arg est une DATES or Datetime, renvoie une chaîne représentant le jour de la semaine de
la date. Si arg est un INT de 0 à 6, renvoie le jour de la semaine correspondant
("Dimanche" à "Samedi").
numérojoursemaine(date_dq)
Renvoie un nombre de 0 à 6 représentant le jour de la semaine du données.
(0 représente le dimanche et 6 représente le samedi.)
année(dq_date)
Renvoie un INT c'est la composante de l'année de données.
EXPRESSION PASTING
Une fonction extrêmement puissante de Rappeler est sa capacité de macro, ou « collage d'expression ».
Dans presque toutes les situations où Rappeler n'attend pas d'expression, vous pouvez "coller" un
expression in. Pour ce faire, entourez l'expression de crochets. Par example:
REM [madate] MSG foo
Cela évalue l'expression "mydate", où "mydate" est vraisemblablement une partie pré-calculée
variable, puis "colle" le résultat dans la ligne de commande pour que l'analyseur le traite.
Une description formelle de ceci est : Quand Rappeler rencontre une expression "collée", elle
évalue l'expression et contraint le résultat à un STRING. Il remplace alors le
chaîne pour l'expression collée et continue l'analyse. Notez cependant que
les expressions ne sont évaluées qu'une seule fois, pas de manière récursive. Ainsi, en écrivant :
["[a+b]"]
les causes Rappeler pour lire le jeton "[a+b]". Il n'interprète pas cela comme un collé
expression. En fait, la seule façon d'obtenir un crochet gauche littéral dans un rappel est d'utiliser
["["].
Vous pouvez utiliser le collage d'expression presque n'importe où. Cependant, il existe quelques exceptions :
o Si Rappeler attend une expression, comme dans le SET commande, ou le IF commande, vous
devrait pas inclure des crochets. Par exemple, utilisez :
FIXER un 4+5
et pas:
RÉGLER un [4+5]
o Vous ne pouvez pas utiliser le collage d'expression pour le premier jeton sur une ligne. Par exemple, le
ce qui suit ne fonctionnera pas :
["RÉGLER"] un 1
Cette restriction est due au Rappeler doit être en mesure de déterminer sans ambiguïté la
premier jeton d'une ligne pour les commandes de contrôle de flux (à discuter plus tard.)
En fait, si Rappeler ne peut pas déterminer le premier jeton sur une ligne, il suppose qu'il
est une REM commander. Si le collage d'expression est utilisé, Rappeler suppose que c'est un REM
commander. Ainsi, les trois commandes suivantes sont équivalentes :
REM 12 nov. 1993 À 13:05 MSG BOO !
12 novembre 1993 À 13:05 MSG BOO!
[12] ["Nov " + 1993] À [12:05+60] MSG BOO!
o Vous ne pouvez pas utiliser le collage d'expression pour déterminer le type (MSG, CAL, etc.) d'un REM
commander. Vous pouvez coller des expressions avant et après le MSG, etc mots-clés, mais
ne peut pas faire quelque chose comme ça :
REM ["12 nov. 1993 À 13:05 " + "MSG" + " BOO!"]
COMMUNE PIÈGES IN EXPRESSION PASTING
N'oubliez pas, lors du collage d'expressions, que les espaces supplémentaires ne sont pas insérés. Ainsi,
quelque chose comme:
REM[expr]MSG[expr]
échouera probablement.
Si vous utilisez une expression pour calculer un delta or RETOUR, assurez-vous que le résultat est un
nombre positif. Quelque chose comme:
REM +[mydelta] 12 novembre 1993 MSG foo
échouera si mondelta se trouve être négatif.
ÉCOULEMENT CONTRÔLE COMMANDES
Rappeler a des commandes qui contrôlent le flux d'un script de rappel. Normalement, rappel
les scripts sont traités séquentiellement. Pourtant, IF et les commandes associées vous permettent de traiter
les fichiers de manière conditionnelle et ignorez les sections que vous ne voulez pas interpréter.
L' IF COMMAND
Votre IF commande a la forme suivante :
SI expr
t-commande
t-commande...
AUTRE
f-commande
f-commande...
Endif
Notez que les commandes sont affichées en retrait pour plus de clarté. Également AUTRE une partie peut être
omis. IF les commandes peuvent être imbriquées jusqu'à une petite limite, probablement autour de 8 ou 16 niveaux de
imbrication, selon votre système.
Si la expr évalue à une valeur non nulle INT, ou une valeur non nulle STRING, puis le IF la portion est
considéré comme vrai, et le t-commandes sont exécutés. Si expr évalue à zéro ou nul, puis
le f-commandes (si la AUTRE partie est présente) sont exécutés. Si expr n'est pas du genre INT
or STRING, alors c'est une erreur.
Exemples :
SI défini ("want_hols")
INCLURE /usr/partager/rappeler/vacances
Endif
SI aujourd'hui() > '1992/2/10'
set missing_ap "Tu l'as raté !"
AUTRE
set missing_ap "Encore le temps..."
Endif
L' IFTRIG COMMAND
Votre IFTRIG la commande est similaire à une IF commande, sauf qu'elle calcule un déclencheur (comme dans
le REM commande), et évalue à vrai si un correspondant REM la commande se déclencherait.
Exemples :
IFTRIG 1 nov.
; Exécuté le 1 nov.
AUTRE
; Exécuté sauf le 1er nov.
Endif
IFTRIG 1 -1 OMIT Sam Dim +4
; Exécuté le dernier jour ouvrable du mois,
; et les 4 jours ouvrés qui le précèdent
AUTRE
; Exécuté sauf les jours ci-dessus
Endif
Notez que le IFTRIG La commande calcule une date de déclenchement, qui peut être récupérée avec le
date de déclenchement() une fonction. Vous pouvez utiliser tous les composants de déclenchement normaux, tels que JUSQU'À CE QUE,
delta, etc. dans le IFTRIG commander.
DÉFINI PAR L'UTILISATEUR FONCTIONS
En plus des fonctions intégrées, Rappeler vous permet de définir vos propres fonctions.
Votre FSET la commande fait cela pour vous :
FSET fnom(args) expr
Fnom est le nom de la fonction et suit la convention de nommage des variables. Arg
est une liste d'arguments séparés par des virgules, et expr est une expression. Arg peut être vide, dans
auquel cas vous définissez une fonction ne prenant aucun paramètre. Voici quelques exemples:
FSET double(x) 2*x
FSET annéediff(date1, date2) année(date1) - année(date2)
FSET depuis(x) ord(année(trigdate())-x)
La dernière fonction est utile dans les rappels d'anniversaire. Par example:
REM 1 nov +12 MSG Dean's [depuis(1984)] anniversaire est %b.
Dean est né en 1984. L'exemple ci-dessus, le 1er novembre 1992, imprimerait :
Le 8e anniversaire de Dean est aujourd'hui.
Notes:
o Si vous accédez à une variable dans expr qui n'est pas dans la liste des arguments, le "global"
valeur (le cas échéant) est utilisée.
o Les noms de fonction et de paramètre ne sont significatifs que jusqu'à 12 caractères.
o Le valeur() fonction toujours accède à la valeur "globale" d'une variable, même si elle
a le même nom qu'un argument. Par example:
fset func(x) value("x")
ensemble x 1
régler y fonction(5)
La séquence ci-dessus définit y sur 1, qui est la valeur globale de x.
o Les fonctions définies par l'utilisateur peuvent appeler d'autres fonctions, y compris d'autres fonctions définies par l'utilisateur.
les fonctions. Cependant, les appels récursifs ne sont pas autorisés.
o Les fonctions définies par l'utilisateur ne sont pas soumises à un contrôle de syntaxe lorsqu'elles sont définies ; l'analyse se produit
seulement quand ils sont appelés.
o Si une fonction définie par l'utilisateur a le même nom qu'une fonction intégrée, elle est ignorée
et la fonction intégrée est utilisée. Pour éviter les conflits avec les futures versions de
Rappeler (qui peut définir plus de fonctions intégrées), vous pouvez souhaiter nommer tous les utilisateurs-
fonctions définies commençant par un trait de soulignement.
PRECISE PLANIFICATION
Votre WARN le mot-clé permet un contrôle précis de l'avertissement préalable d'une manière plus flexible
que le delta mécanisme. Il doit être suivi du nom d'une fonction définie par l'utilisateur,
fonction_avertissement.
Si un fonction_avertissement est fourni, alors il doit prendre un argument de type INT. Rappeler
ignore tout delta et appelle à la place fonction_avertissement successivement avec les arguments 1, 2,
sept, ...
Fonction_avertissementvaleur de retour de n est interprété comme suit :
o Si n est positif, alors le rappel est déclenché exactement n jours avant son déclenchement
date.
o Si n est négatif, alors il est déclenché n jours avant sa date de déclenchement, pas compte
OMETTREjours fériés.
Par exemple, supposons que vous souhaitiez être averti des jours 5, 3 et 1 de l'indépendance américaine
en avance. Vous pouvez utiliser ceci :
FSET _wfun(x) choisir(x, 5, 3, 1, 0)
REM 4 juillet WARN _wfun Le jour de l'indépendance américaine du MSG est %b.
NOTES
1 Si une erreur se produit lors de l'évaluation de fonction_avertissement, puis Rappeler s'arrête
l'appelant et émet simplement le rappel à sa date de déclenchement.
2 Si les valeurs absolues des valeurs de retour de fonction_avertissement ne sont pas monotones
décroissant, Rappeler cesse de l'appeler et émet le rappel à sa date de déclenchement.
3 Fonction_avertissement devrait (comme une question de bon style) retourner 0 comme valeur finale dans son
séquence de valeurs de retour. Cependant, un rappel sera toujours être déclenché sur son
date de déclenchement, quelle que soit la fonction_avertissement t.
Similaire à WARN, PROGRAMMÉ le mot-clé permet un contrôle précis de la planification des
rappels. Il doit être suivi du nom d'une fonction définie par l'utilisateur, fonction_programmée.
Si une fonction de planification est fournie, alors elle doit prendre un argument de type INT. Plutôt
que d'utiliser le AT temps temps delta, et le temps répéter, Rappeler appelle la fonction d'ordonnancement
pour déterminer quand déclencher le rappel. La première fois que le rappel est mis en file d'attente, le
La fonction de planification est appelée avec un argument de 1. Chaque fois que le rappel est déclenché,
il est replanifié en appelant à nouveau la fonction de planification. A chaque appel, l'argument
est incrémenté de un.
La valeur de retour de la fonction de planification doit être un INT ou . Si la valeur de retour
est une , le rappel est remis en file d'attente pour se déclencher à ce moment-là. Si c'est positif
entier n, puis le rappel est remis en file d'attente pour se déclencher à l'heure de déclenchement précédente plus n
minutes. Enfin, s'il s'agit d'un entier négatif ou de zéro, le rappel est remis en file d'attente pour
déclencher n minutes avant le AT temps. Notez qu'il doit y avoir un AT clause pour le PROGRAMMÉ
clause de faire quoi que ce soit.
Voici un exemple:
FSET _sfun(x) choisir(x, -60, 30, 15, 10, 3, 1, 1, 1, 1, 0)
REM À 13:00 SCHED _sfun MSG foo
Le rappel serait d'abord déclenché à 13h00-60 minutes, ou à 12h00. Ce serait ensuite
déclenché 30 minutes plus tard, à 12h30. Ensuite, il serait déclenché à 12h45, 12h55, 12h58,
12h59, 13h00, 13h01 et 13h02.
NOTES
1 Si une erreur se produit lors de l'évaluation de sched_func, puis Rappeler revient à
en utilisant l' AT le temps et le delta et répéter valeurs, et n'appelle jamais sched_func
nouveau.
2 Si le traitement sched_func donne une heure antérieure à l'heure système actuelle, il est
appelé à plusieurs reprises avec un argument croissant jusqu'à ce qu'il donne une valeur supérieure ou
égal à l'heure actuelle. Cependant, si la séquence de valeurs calculée au cours
la répétition n'est pas strictement croissante, alors Rappeler revient à la valeur par défaut
comportement et n'appelle jamais sched_func nouveau.
3 Il est tout à fait possible d'utiliser sched_func pour continuer à déclencher un rappel même après la
AT-temps. Cependant, il n'est pas possible de reprogrammer un rappel après minuit - non
le franchissement des limites de dates est autorisé. Aussi, il est tout à fait possible de pas déclencher
un rappel sur le AT moment où vous utilisez une fonction de planification. Cependant, si votre
la fonction de planification est terminée (pour les raisons 1 et 2) avant la AT heure du
rappel, il sera être déclenché à la AT temps, car le traitement normal prend
plus de.
4 Vos fonctions de planification devraient (par souci de bon style) renvoyer 0 lorsqu'il n'y en a plus.
une planification est requise. Voir l'exemple.
5 Toutes les fonctions de planification sont évaluées après l'intégralité du script de rappel a été lu
in. Ainsi, toutes les définitions de fonction en vigueur à la fin du script sont
utilisé.
L' SATISFAIRE CLAUSE
La forme de REM que utilisations SATISFAIRE est comme suit:
REM déclencher SATISFAIRE expr
La façon dont cela fonctionne est la suivante : Rappeler calcule d'abord une date de déclenchement, dans la normale
mode. Ensuite, il définit date de déclenchement() à la date de déclenchement calculée. Il évalue ensuite
expr. Si le résultat n'est pas la chaîne nulle ou zéro, le traitement se termine. Autrement, Rappeler
calcule la prochaine date de déclenchement et re-teste expr. Cette itération se poursuit jusqu'à expr
est évalué à une valeur non nulle ou non nulle, ou jusqu'à la limite d'itération spécifiée avec le -x
l'option de ligne de commande est atteinte.
If expr n'est pas satisfait, alors trigvalid() est mis à 0. Sinon, trigvalid() est fixé à
1. Dans tous les cas, aucun message d'erreur n'est émis.
Ceci n'est vraiment utile que si expr implique un appel au date de déclenchement() une fonction; autrement,
expr ne changera pas comme Rappeler itère.
Un exemple de l'utilité de SATISFAIRE: Supposons que vous souhaitiez être prévenu de chaque vendredi
le 13. Votre première tentative peut être :
# TORT!
REM ven 13 +2 MSG vendredi 13 est %b.
Mais cela ne fonctionnera pas. Ce rappel se déclenche le premier vendredi à partir du 13
chaque mois. La façon de le faire est avec une séquence plus compliquée :
REM 13 SATISFAIRE wkdaynum(trigdate()) == 5
SI trigvalid()
REM [date de déclenchement()] +2 MSG \
Vendredi 13, c'est %b.
Endif
Voyons comment cela fonctionne. le SATISFAIRE la clause parcourt tous les 13e de successifs
mois, jusqu'à ce qu'une date de déclenchement soit trouvée dont le jour de la semaine est vendredi (== 5). Si une date valide
a été trouvé, nous utilisons la date de déclenchement calculée pour configurer le prochain rappel.
On aurait aussi pu écrire :
REM Ven SATISFY jour(trigdate()) == 13
mais cela entraînerait plus d'itérations, puisque les "vendredis" se produisent plus souvent que les "13 de
le mois."
Cette technique d'utilisation d'un REM commande pour calculer une date de déclenchement à utiliser par un autre
la commande est assez puissante. Par exemple, supposons que vous vouliez OMETTRE la fête du travail, qui est
le premier lundi de septembre. Vous pouvez utiliser :
# Remarque : SATISFY 1 est un idiome pour "ne rien faire"
REM Lun 1 Sept SATISFAIRE 1
OMETTRE [date de déclenchement()]
CAVEAT: Cette uniquement omet le next La fête du travail, pas toutes les fêtes du travail à l'avenir. Cette
pourrait provoquer des résultats étranges, car le OMETTRE le contexte peut changer en fonction de la date actuelle.
Par exemple, si vous utilisez la commande suivante après les commandes ci-dessus :
REM Lun APRÈS msg bonjour
le résultat ne sera pas à la hauteur de vos attentes. Envisagez de produire un calendrier pour septembre 1992.
La fête du travail était le lundi 7 septembre 1992. Cependant, lorsque Rappeler se déplace pour
calculant le déclencheur du mardi 8 septembre 1992, le OMETTRE la commande sera désormais
en omettant la fête du travail pour 1993, et la commande "Mon AFTER" ne sera pas déclenchée. (Mais voyez
la description de NUMÉRISER À PARTIR dans la section "Détails sur le calcul du déclencheur.")
Il est probablement préférable de rester à l'écart de l'informatique OMETTRE dates de déclenchement à moins que vous ne les conserviez
pièges à l'esprit.
Pour les versions de Rappeler à partir du 03.00.07, vous pouvez inclure un MSG, COURT , etc. dans
a SATISFAIRE clause comme suit :
REM trigger_stuff SATISFY [expr] corps MSG
Notez que pour ce cas uniquement, le expr après SATISFAIRE must être entouré d'accolades. Il doit
venir après tous les autres composants du déclencheur, et immédiatement avant le MSG, COURT ,
etc. mot-clé. Si expr ne peut pas être satisfaite, le rappel n'est pas déclenché.
Ainsi, l'exemple "Vendredi 13" peut être exprimé de manière plus compacte comme suit :
REM 13 +2 SATISFAIRE [wkdaynum(trigdate()) == 5] \
MSG vendredi 13 est %b.
Et vous pouvez déclencher un rappel les lundis, mercredis et jeudis impairs.
jours numérotés du mois avec les éléments suivants :
REM Lun Mer Jeu SATISFAIRE [jour(trigdate())%2] \
MSG Ça y est !!!
Notez que SATISFAIRE et OMITFUNC peuvent souvent être utilisés pour résoudre le même problème, bien que dans
différentes façons. Parfois un SATISFAIRE est plus propre et parfois un OMITFUNC; expérimenter et
utilisez celui qui vous semble le plus clair.
DÉBOGAGE RAPPEL ÉCRITURES
Bien que la ligne de commande -d option est utile pour le débogage, elle est souvent exagérée. Pour
exemple, si vous activez le -dx option pour un fichier de rappel avec de nombreuses expressions complexes,
vous obtiendrez une énorme quantité de sortie. le DEBUG La commande vous permet de contrôler le débogage
drapeaux sous le contrôle du programme. Le format est :
DEBUG [+drapeau] [-drapeau]
Flagson et drapeau se composent de chaînes de caractères "extvlf" qui correspondent au
options de débogage décrites dans la section des options de ligne de commande. Si précédé d'un "+",
le groupe d'options de débogage correspondant est activé. Sinon, ils sont commutés
désactivé. Par exemple, vous pouvez utiliser cette séquence pour déboguer une expression compliquée :
DÉBUG +x
définir un expression_très_complexe(nombreux_args)
DÉBUG -x
L' VARSOVIES COMMAND
La commande VARSOVIES affiche les valeurs des variables en mémoire. Son format est :
VARSOVIES [var...]
Si vous fournissez une liste de noms de variables séparés par des espaces, les variables correspondantes sont
affiché. Si vous ne fournissez pas de liste de variables, toutes les variables en mémoire sont
affiché. Pour vider une variable système, mettez son nom dans la liste des variables à vider. Si
vous mettez un seul signe dollar dans la liste des variables à vider, puis toutes les variables système
sera largué.
L' ERRRMSG COMMAND
Votre ERRRMSG commande a le format suivant :
ERRRMSG corps
Votre corps est passé à travers le filtre de substitution (avec une date de déclenchement implicite de
aujourd'hui()) et imprimé dans le flux de sortie d'erreur. Exemple:
SI !défini("var_critique")
ERRMSG Vous devez fournir une valeur pour "critical_var"
EXIT
Endif
L' EXIT COMMAND
L'exemple ci-dessus montre également l'utilisation de la EXIT commander. Cela provoque une inconditionnelle
quitter le traitement du script. Tous les rappels programmés en file d'attente sont ignorés. Si vous êtes dans
mode calendrier (décrit ci-après), le traitement du calendrier est abandonné.
Si vous fournissez un INT-type expression après le EXIT commande, elle est renvoyée à l'appelant
programme comme état de sortie. Sinon, un état de sortie de 99 est renvoyé.
L' CHASSE COMMAND
Cette commande se compose simplement du mot CHASSE sur une ligne à part entière. La commande vide
les flux de sortie standard et d'erreur standard utilisés par Rappeler. Ce n'est pas terrible
utile à la plupart des gens, mais peut être utile si vous exécutez Rappeler en tant que sous-processus d'un autre
programme et que vous souhaitez utiliser des canaux pour la communication.
CALENDRIER MODE
Si vous fournissez le -c, -s or -p option de ligne de commande, puis Rappeler s'exécute en "mode calendrier".
Dans ce mode, Rappeler interprète le script à plusieurs reprises, effectuant une itération à travers
l'ensemble du fichier pour chaque jour du calendrier. Les rappels qui se déclenchent sont enregistrés en interne
tampons, puis insérés dans le calendrier aux endroits appropriés.
Si vous fournissez également le -a option, alors Rappeler n'inclura pas de rappels programmés dans le
calendrier.
Votre -p l'option est utilisée en conjonction avec l'option Rem2PS programme pour produire un calendrier en
Format PostScript. Par exemple, la commande suivante enverra du code PostScript à
sortie standard :
rappeler -p .rappels | rem2ps
Vous pouvez imprimer un calendrier PostScript en le dirigeant vers le LPR commander.
Si vous avez un script de rappel appelé ".reminders", et que vous exécutez cette commande :
rappel -c .rappels janvier 1993
puis Rappeler exécute le script 31 fois, une fois par jour de janvier. A chaque fois il
exécute le script, il incrémente la valeur de aujourd'hui(). Tous les rappels dont la date de déclenchement
allumettes aujourd'hui() sont inscrites au calendrier.
MSG et CAL-les rappels de type, par défaut, ont tout leur corps inséré dans le calendrier.
COURT -les rappels de type ne sont normalement pas insérés dans le calendrier. Toutefois, si vous joignez un
partie du corps dans la séquence %"...%", seule cette partie est insérée. Par example,
considérer ce qui suit:
REM 6 janvier MSG %"Anniversaire de Diane%" est %b
En mode normal, Rappeler imprimerait "L'anniversaire de Dianne est aujourd'hui" le 6 janvier.
Cependant, en mode calendrier, seul le texte "Anniversaire de Dianne" est inséré dans la case
pour le 6 janvier.
Si vous utilisez explicitement la séquence %"...%" dans un COURT -tapez rappel, puis le texte entre
les délimiteurs sont insérés dans le calendrier. Si vous utilisez la séquence %"%" dans un MSG or
CAL-type rappel, aucune entrée de calendrier n'est produite pour ce rappel.
CONSERVATION VARIABLES
Parce que Rappeler parcourt le script pour chaque jour du calendrier, ralentit les opérations
peut réduire considérablement la vitesse de production d'un calendrier.
Par exemple, supposons que vous définissiez les variables "me" et "hostname" comme suit :
SET me shell ("whoami")
SET nom d'hôte shell ("nom d'hôte")
Normalement, Rappeler efface toutes les variables entre les itérations en mode calendrier. Toutefois, si
certaines variables sont lentes à calculer et ne changeront pas entre les itérations, vous pouvez
"préserver" leurs valeurs avec le PRÉSERVER commander. De plus, puisque les définitions de fonctions sont
conservées entre les itérations calendaires, il n'est pas nécessaire de les redéfinir à chaque
itération. Ainsi, vous pourriez utiliser la séquence suivante :
SI ! défini("initialisé")
ensemble initialisé 1
réglez-moi shell ("whoami")
définir le nom d'hôte shell ("nom d'hôte")
fset fonction(x) expression_complexe
conserver mon nom d'hôte initialisé
Endif
Le fonctionnement est le suivant : lors de la première itération du script, "initialized" est
non défini. Ainsi, les commandes entre IF et Endif sont exécutés. le PRÉSERVER commander
garantit que les valeurs de initialized, me et hostname sont conservées pour les
itérations. A l'itération suivante, les commandes sont ignorées, car initialized a
restait défini. Ainsi, des opérations chronophages qui ne dépendent pas de la valeur de
aujourd'hui() se font qu'une seule fois.
Les variables système (celles dont le nom commence par '$') sont automatiquement conservées entre
itérations du calendrier.
A noter que pour plus d'efficacité, Rappeler met en cache le script de rappel (et tout COMPRENDREfichiers d) dans
mémoire lors de la production d'un calendrier.
Les rappels programmés sont triés et placés dans le calendrier dans l'ordre du temps. Ceux-ci sont suivis
par des rappels intempestifs. Rappeler place automatiquement l'heure des rappels programmés dans
calendrier selon le -b option de ligne de commande. Les rappels en mode calendrier sont triés
comme si le -g l'option avait été utilisée ; vous pouvez modifier l'ordre de tri en mode calendrier en
en utilisant explicitement le -g option pour spécifier un ordre différent de celui par défaut.
RÉPÉTÉ EXÉCUTION
Si vous fournissez un répéter paramètre sur la ligne de commande, et n'utilisez pas le -c, -p, ou -s
options, Rappeler fonctionne de la même manière que le mode calendrier. Il exécute à plusieurs reprises le
script de rappel, incrémentation aujourd'hui() à chaque itération. Les mêmes règles concernant
la préservation des variables et des définitions de fonction s'applique. Notez que l'utilisation répéter sur le
la ligne de commande permet également -q option et désactive toute -z option. A titre d'exemple, si vous
veux voir comment Rappeler se comportera pour la semaine prochaine, vous pouvez taper :
rappel .rappels '*7'
Si vous voulez imprimer les dates des 1000 prochains jours, utilisez :
(echo 'bannière %'; echo 'msg [aujourd'hui()]%') | rappeler - '*1000'
INITIALISATION VARIABLES ON L' COMMAND LINE
Votre -i L'option est utilisée pour initialiser les variables sur le Rappeler ligne de commande. La forme est
-ivar=expr, Où expr est une expression valide. Notez que vous devrez peut-être utiliser des guillemets ou
s'échappe pour empêcher le shell d'interpréter les caractères spéciaux dans expr. Vous pouvez avoir
autant -i options comme vous le souhaitez sur la ligne de commande, et elles sont traitées dans l'ordre.
Ainsi, si une variable est définie dans un -i option, il peut être référencé par la suite -i
options.
Notez que si vous fournissez une date sur la ligne de commande, elle n'est pas analysée tant que toutes les options
ont été traitées. Ainsi, si vous utilisez aujourd'hui() dans l'un des -i expressions, il va
renvoie la même valeur que aujourd'hui réel() et non la date fournie sur la ligne de commande.
Toutes les variables définies sur la ligne de commande sont conservé comme avec le PRÉSERVER commander.
Vous ne devez laisser aucun espace entre les -i option et le signe égal ; autrement,
des noms de variables étranges sont créés et ne sont accessibles qu'avec le valeur() or défini()
fonctions.
Vous pouvez également définir une fonction sur la ligne de commande en utilisant :
-ifonction(args)=définition
Assurez-vous de protéger les caractères spéciaux de l'interprétation du shell.
AUTRES À PROPOS POSTSCRIPT
Votre PS et FICHIER PS les rappels transmettent le code PostScript directement à l'imprimante. Ils diffèrent dans
que l' PS-type de rappel passe son corps directement à la sortie PostScript (après
traitement par le filtre de substitution) tandis que FICHIER PS-le corps du type devrait simplement consister
d'un nom de fichier. le Rem2PS programme ouvrira le fichier nommé dans le FICHIER PS-rappel de type,
et inclure son contenu dans la sortie PostScript.
Les rappels de type PostScript pour un jour particulier sont inclus dans la sortie PostScript
dans l'ordre de priorité trié. Notez que l'ordre des commandes PostScript a un majeur
impact sur l'apparence des calendriers. Par exemple, le code PostScript pour ombrer un
la boîte de calendrier effacera le code pour dessiner un symbole de la lune si le code du symbole de la lune est placé
dans le calendrier en premier. Pour cette raison, vous ne devez pas fournir PS or FICHIER PSDe type
rappels avec priorités ; à la place, vous devez vous assurer qu'ils apparaissent dans le rappel
script dans le bon ordre. Le code PostScript doit dessiner des objets fonctionnant à partir du
arrière-plan au premier plan, de sorte que les objets de premier plan recouvrent correctement ceux d'arrière-plan.
Si vous hiérarchisez ces rappels et exécutez le script en utilisant l'ordre de tri décroissant pour
priorités, la sortie PostScript ne fonctionnera pas.
Tout le code PostScript d'une date particulière est enfermé dans un enregistrer-restaurer paire.
Cependant, si plusieurs relances de type PostScript sont déclenchées pour une même journée, chaque rubrique
de PostScript n'est pas enfermé dans un enregistrer-restaurer paire - à la place, le corps entier de
inclus PostScript est inclus.
Les rappels de type PostScript sont exécutés par l'imprimante PostScript avant tout
entrées de calendrier. Ainsi, les entrées de calendrier régulières recouvriront le type PostScript
rappels, vous permettant de créer des arrière-plans ombragés ou graphiques pour des jours particuliers.
Avant d'exécuter votre code PostScript, l'origine du système de coordonnées PostScript est
placé dans le coin inférieur gauche de la "boîte" du calendrier représentant
aujourd'hui(). Cet emplacement est exactement au milieu de l'intersection du bas et
lignes noires laissées délimitant la boîte - vous devrez peut-être tenir compte de l'épaisseur de ces
lignes lors du calcul des positions.
Plusieurs variables PostScript sont disponibles pour le code PostScript que vous fournissez. Tout
les variables de distance et de taille sont en unités PostScript (1/72 pouce). Les variables sont :
Largeur de ligne
La largeur des lignes noires de la grille constituant le calendrier.
Bordure La bordure entre le centre des lignes de la grille et l'espace utilisé pour imprimer
entrées de calendrier. Cette bordure est normalement un espace vide.
BoxWidth et BoxHeight
La largeur et la hauteur de la case calendrier, de centre à centre du noir
quadrillage.
Hauteur de la boîte de réception
La hauteur entre le centre du quadrillage noir inférieur et le haut du quadrillage régulier
zone de saisie du calendrier. L'espace d'ici au sommet de la boîte est utilisé uniquement pour
dessiner le numéro du jour.
/DayFont, /EntryFont, /SmallFont, /TitleFont et /HeadFont
Les polices utilisées pour dessiner les numéros de jour, les entrées de calendrier, les petits calendriers,
le titre du calendrier (mois, année) et les en-têtes du jour de la semaine, respectivement.
DaySize, EntrySize, TitleSize et HeadSize
Les tailles des polices ci-dessus. (La taille de la petite police du calendrier est pas défini
ici.) Par exemple, si vous vouliez imprimer la date hébraïque à côté du jour normal
numéro dans le calendrier, utilisez :
REM PS Border BoxHeight Border sous DaySize sous moveto \
/DayFont findfont DaySize scalefont setfont \
([hebday(aujourd'hui())] [hebmon(aujourd'hui())]) afficher
Notez comment /DayFont et DaySize sont utilisés.
Notez que si vous fournissez du code PostScript, il est possible de produire un PostScript invalide
des dossiers. Testez toujours soigneusement votre PostScript avec une visionneuse PostScript avant de l'envoyer
à l'imprimante. Vous ne devez utiliser aucun commentaire de structuration de document dans votre PostScript
code.
DÉMON MODE
Si vous utilisez le -z option de ligne de commande, Rappeler s'exécute en mode "démon". Dans ce mode, non
des rappels "normaux" sont émis. Au lieu de cela, seuls les rappels programmés sont collectés et mis en file d'attente,
et sont ensuite émis chaque fois qu'ils atteignent leur heure de déclenchement.
Par ailleurs, Rappeler se réveille toutes les quelques minutes pour vérifier la date de modification sur le
script de rappel (le nom de fichier fourni sur la ligne de commande.) Si Rappeler détecte que le
script a changé, il s'exécute à nouveau en mode démon et interprète la modification
scripts.
En mode démon, Rappeler relit également le script de rappel lorsqu'il détecte que le système
date a changé.
En mode démon, Rappeler fait comme si le -f option avait été utilisée, donc pour exécuter dans le démon
mode en arrière-plan, utilisez :
rappel -z .rappels &
Si vous utilisez sh or bash, vous devrez peut-être utiliser la commande "nohup" pour vous assurer que le démon
n'est pas tué lorsque vous vous déconnectez.
PURGE MODE
Si vous fournissez le -j option de ligne de commande, Rappeler court dans purge mode. Dans ce mode, il
essaie de purger les rappels expirés de vos fichiers de rappel.
En mode purge, Rappeler lit votre fichier de rappel et crée un nouveau fichier en ajoutant
".purged" au nom du fichier d'origine. Noter que Rappeler jamais édite votre fichier d'origine ; ce
crée toujours un nouveau fichier .purged.
Si vous invoquez Rappeler contre un répertoire au lieu d'un fichier, alors un fichier .purged est créé
pour chaque fichier *.rem du répertoire.
Normalement, Rappeler ne crée pas de fichiers .purged pour les fichiers INCLUDed. Cependant, si vous fournissez
un argument numérique après -j, puis Rappeler créera des fichiers .purged pour le niveau spécifié
d'INCLURE. Par exemple, si vous invoquez Rappeler avec l'argument -j2, puis fichiers .purgés
sera créé pour le fichier (ou le répertoire) spécifié sur la ligne de commande, tous les fichiers
inclus par eux, et tous les fichiers inclus par ces fichiers. Cependant, les fichiers .purged ne seront pas
être créé pour les fichiers INCLUDE de troisième niveau ou supérieur.
Déterminer quels rappels ont expiré est extrêmement délicat. Rappeler fait de son mieux, mais
vous devez toujours comparer le fichier .purged au fichier d'origine et fusionner manuellement les modifications
de retour
Remind annote le fichier .purged comme suit :
Un rappel expiré est précédé de : #!P : Expiré :
Dans des situations où Rappeler ne peut pas déterminer de manière fiable que quelque chose a expiré, vous pouvez
voir les commentaires suivants insérés avant la ligne problématique :
#!P : Impossible de purger les rappels de type SATISFY
#!P : le prochain SI évalué faux...
#!P : les instructions REM dans le bloc IF ne sont pas vérifiées pour la purge.
#!P : le IF précédent a été évalué comme vrai.
#!P : les instructions REM dans le bloc ELSE ne sont pas vérifiées pour la purge
#!P : le prochain IFTRIG ne s'est pas déclenché.
#!P : les instructions REM dans le bloc IFTRIG ne sont pas vérifiées pour la purge.
#!P : la ligne suivante a expiré, mais contient une expression... veuillez vérifier
#!P : la ligne suivante peut avoir expiré, mais contient une expression non constante
#!P! Impossible d'analyser la ligne suivante : Some-Error-Message-Here
Rappeler annote toujours les fichiers .purged avec des lignes commençant par "#!P". Si de telles lignes sont
rencontré dans le original fichier, ils ne sont pas copiés dans le fichier .purged.
TRI RAPPELS
Votre -g l'option provoque Rappeler pour trier les rappels par date, heure et priorité de déclenchement avant
les émettre. Notez que les rappels sont toujours calculés dans l'ordre rencontré dans le
scénario. Cependant, plutôt que d'être émises immédiatement, elles sont enregistrées dans un fichier interne
amortir. Lorsque Rappeler a terminé le traitement du script, il émet les rappels enregistrés dans
ordre trié. le -g l'option peut être suivie de quatre caractères maximum qui doivent tous être "a"
ou "d". Le premier caractère spécifie l'ordre de tri par date de déclenchement (croissant ou
décroissant), le deuxième spécifie l'ordre de tri par heure de déclenchement et le troisième spécifie
l'ordre de tri par priorité. Si le quatrième caractère est "d", les rappels sans heure sont
triés avant les rappels chronométrés. La valeur par défaut est de trier tous les champs par ordre croissant et
pour trier les rappels sans heure après les rappels avec heure.
Par ordre croissant, les rappels sont émis avec le plus imminent en premier. Ordre décroissant
est l'inverse. Les rappels sont toujours triés par date de déclenchement, et les rappels avec le même
la date de déclenchement est ensuite triée par heure de déclenchement. Si deux rappels ont la même date et
temps, alors la priorité est utilisée pour briser les égalités. Rappels avec la même date, heure et
priorité sont émises dans l'ordre où elles ont été rencontrées.
Vous pouvez définir une fonction définie par l'utilisateur appelée SORTBANNER qui prend une DATESDe type
argument. En mode tri, la séquence suivante se produit :
If Rappeler remarque que le prochain rappel à émettre a une date de déclenchement différente de la
précédent (ou si c'est le premier à être émis), alors SORTBANNER est appelé avec le
date de déclenchement comme argument. Le résultat est converti en une chaîne et transmis par le
filtre de substitution avec la date de déclenchement appropriée. Le résultat est alors affiché.
Voici un exemple - considérez le fragment suivant :
# Désactiver la bannière normale
BANNIÈRE %
REM 11 mars 1993 ++1 MSG Pas si important
REM 17 mars 1993 ++7 MSG Way in the future
REM 10 mars 1993 MSG Rappel important
REM 11 mars 1993 ++1 MSG Pas si important - B
FSET sortbanner(x) iif(x == aujourd'hui(), \
"***** CHOSES À FAIRE AUJOURD'HUI *****", \
"----- Choses à faire %b -----")
Exécuter ceci avec le -gaa option le 10 mars 1993 produit le résultat suivant :
***** CHOSES À FAIRE AUJOURD'HUI *****
Rappel important
----- Choses à faire demain -----
Pas si important
Pas si important - B
----- Choses à faire dans 7 jours -----
Chemin dans le futur
Vous pouvez utiliser le arguments() fonction intégrée pour déterminer si SORTBANNER a été ou non
défini. (Cela pourrait être utilisé, par exemple, pour fournir une définition par défaut pour SORTBANNER
dans un fichier système inclus à la fin du fichier de l'utilisateur.) Voici un exemple :
# Créez une fonction sortbanner par défaut si ce n'est déjà fait
# été défini
si args("sortbanner") != 1
fset sortbanner(x) "--- Choses à faire %b ---"
fin si
MSGPRÉFIX() ET MSGSUFFIX()
Vous pouvez définir deux fonctions dans votre script appelées préfixe msg() et msgsuffix(). Ces palmes
doivent chacun accepter un argument, un nombre compris entre 0 et 9999.
En mode normal, pour MSG- Et MSFrappels de type, la séquence suivante se produit lorsque Rappeler
déclenche un rappel :
o Si préfixe msg() est défini, il est évalué avec la priorité du rappel comme son
argument. Le résultat est imprimé. Il est pas passé par la substitution
filtre.
o Le corps du rappel est imprimé.
o Si msgsuffix() est défini, il est évalué avec la priorité du rappel comme son
argument. Le résultat est imprimé. Il est pas passé par la substitution
filtre.
Voici un exemple : la définition suivante fait précéder les rappels de priorité 0 par
"URGENT", et les rappels de priorité-6000 doivent être précédés de "(pas important)".
fset msgprefix(x) iif(x==0, "URGENT : ", \
x==6000, "(pas important) ", "")
En mode calendrier (avec le -c, -s or -p options), une paire de fonctions analogue nommée
calpréfixe() et calsuffixe() peut être défini. Ils fonctionnent avec tous les rappels qui produisent un
entrée dans le calendrier (c'est-à-dire, CAL- et éventuellement COURT rappels de type ainsi que MSGDe type
rappels.)
NOTES
Normalement, le corps d'un rappel est suivi d'un retour chariot. Ainsi, les résultats de
msgsuffix() apparaîtra sur la ligne suivante. Si vous ne le souhaitez pas, terminez le corps du
rappel avec un signe de pourcentage, "%". Si vous voulez un espace entre vos rappels, simplement
inclure un retour chariot (carboniser(13)) en tant que membre de msgsuffix() valeur de retour.
If Rappeler a du mal à évaluer préfixe msg(), msgsuffix() or trierbanner(), vous verrez un
beaucoup de messages d'erreur. Pour un exemple, définissez ce qui suit :
fset préfixe de message (x) x/0
ÉTRANGER LANGUAGE SUPPORT
Votre version de Rappeler peut avoir été compilé pour prendre en charge une langue autre que l'anglais.
Cette prise en charge peut être complète ou non - par exemple, tous les messages d'erreur et d'utilisation peuvent
être encore en anglais. Cependant, au minimum, les versions en langue étrangère de Rappeler sera
afficher les noms des mois et des jours de la semaine dans la langue étrangère. Aussi, le remplacement
mécanisme substituera des constructions adaptées à la langue étrangère plutôt qu'à
Anglais.
Une version en langue étrangère de Rappeler acceptera l'anglais ou la langue étrangère
noms des jours de la semaine et des mois dans un script de rappel. Cependant, pour assurer la compatibilité entre
les versions d' Rappeler, vous devez utiliser uniquement les noms anglais dans vos scripts. Aussi, si votre
Le compilateur C ou les bibliothèques d'exécution ne sont pas "8 bits propres" ou ne comprennent pas l'ISO-Latin
jeu de caractères, les noms de mois ou de jour avec des lettres accentuées peuvent ne pas être reconnus.
L' HÉBREU CALENDRIER
Rappeler prend en charge le calendrier hébreu, qui est un calendrier luni-solaire. Ceci permet
vous permet de créer des rappels pour les fêtes juives, les jahrzeits (anniversaires de décès) et
smachot (occasions joyeuses.)
L' HÉBREU ANNÉE
L'année hébraïque compte 12 mois, alternativement de 30 et 29 jours. Les mois sont : Tishrey,
Heshvan, Kislev, Tevet, Shvat, Adar, Nisan, Iyar, Sivan, Tamuz, Av et Elul. Dans la Bible
fois, l'année commençait à Nisan, mais Rosh Hashana (Nouvel An juif) est maintenant célébré le
le 1er et le 2 de Tishrey.
Dans un cycle de 19 ans, il y a 7 années bissextiles, soit les années 3, 6, 8, 11, 14, 17 et 19 de
le cycle. Dans une année bissextile, un mois supplémentaire de 30 jours est ajouté avant Adar. Les deux Adar
sont appelés Adar A et Adar B.
Pour certaines raisons religieuses, l'année ne peut commencer un dimanche, un mercredi ou un vendredi. À
ajuster pour cela, un jour est retiré de Kislev ou ajouté à Heshvan. Ainsi, une année régulière peut
ont de 353 à 355 jours, et une année bissextile de 383 à 385.
Lorsque Kislev ou Heshvan est court, on l'appelle ciseleur, ou manquant. Quand c'est long, c'est
appelé Shalem, ou plein.
La date juive change au coucher du soleil. Pourtant, Rappeler changera la date à minuit, pas
le coucher du soleil. Ainsi, dans la période entre le coucher du soleil et minuit, Remind sera un jour plus tôt que
la vraie date juive. Cela ne devrait pas poser trop de problèmes dans la pratique.
Les calculs pour le calendrier juif étaient basés sur le programme "hdate" écrit par Amos
Shapir de l'Université hébraïque de Jérusalem, Israël. Il a également fourni le précédent
explication du calendrier.
HÉBREU DATES FONCTIONS
jour de fête (date_j)
Renvoie le jour du mois hébreu correspondant au données paramètre. Pour
exemple, le 12 avril 1993 correspond au 21 Nisan 5753. Ainsi, hebday('1993/04/12')
renvoie 21.
hebmon(j_date)
Renvoie le nom du mois hébreu correspondant à données. Par exemple,
hebmon('1993/04/12') renvoie "Nisan".
hebannée(j_date)
Renvoie l'année hébraïque correspondant à données. Par exemple, hebyear('1993/04/12')
renvoie 5753.
hebdate(j_jour, s_hebmon [,id_yrstart [,i_jahr [,i_aflag]]])
Votre hébdate() La fonction est la plus complexe des fonctions de support en hébreu. Ça peut
prendre de 2 à 5 arguments. Il renvoie un DATES correspondant à la date hébraïque.
Votre journée paramètre peut aller de 1 à 30, et spécifie le jour de l'hébreu
mois. le hebmon le paramètre est une chaîne qui doit nommer l'un des mois hébreux
spécifié ci-dessus. Notez que le mois doit être épelé en toutes lettres et utilisez le
Translittération anglaise montrée précédemment. Vous pouvez également spécifier "Adar A" et "Adar
B." Les noms de mois ne sont pas sensibles à la casse.
Votre début d'année paramètre peut être soit un DATES ou d’une INT. Si c'est un DATES, puis le
hébdate() recherche la première date hébraïque à cette date ou après cette date. Par example:
date heb(15, "Nisan", '1990/01/01')
renvoie 1990/03/30, car il s'agit de la première occurrence du 15 Nisan le 1 ou après
January 1990.
If début d'année est un INT, il est interprété comme une année hébraïque. Ainsi:
hebdate(22, "Kislev", 5756)
renvoie 1995/12/15, car cette date correspond au 22 Kislev 5756. Notez que
aucune des fonctions de date hébraïque ne fonctionnera avec des dates en dehors Rappeler Ordinaire
plage de dates.
If début d'année n'est pas fourni, il est par défaut aujourd'hui().
Votre année modifie le comportement de hébdate() comme suit:
If année est 0 (valeur par défaut), alors hébdate() continue de scanner jusqu'à ce qu'il trouve une date
qui satisfait exactement les autres paramètres. Par example:
hebdate(30, "Adar A", 1993/01/01)
renvoie 1995/03/02, correspondant au 30 Adar A, 5755, car c'est le prochain
apparition de 30 Adar A après le 1er janvier 1993. Ce comportement est approprié pour
Pourim Katan, qui n'apparaît que les années bissextiles.
If année vaut 1, alors la date est modifiée comme suit :
o 30 Heshvan sont convertis en 1 Kislev les années où Heshvan est ciseleur
o 30 Kislev sont convertis en 1 Tevet les années où Kislev est ciseleur
o 30 Adar A est converti en 1 Nisan dans les années non bissextiles
o Les autres dates en Adar A sont décalées au jour correspondant en Adar en non
années bissextiles
Ce comportement est approprié pour les smachot (occasions joyeuses) et pour certains jahrzeits
- voir "JAHRZEITS".
if année vaut 2, alors la date est modifiée comme suit :
o 30 Kislev et 30 Heshvan sont convertis en 29 Kislev et 29 Heshvan,
respectivement, si le mois est ciseleur
o 30 Adar A est converti en 30 Shvat dans les années non bissextiles
o Les autres dates en Adar A sont décalées au jour correspondant en Adar en non
années bissextiles
if année n'est pas 0, 1 ou 2, il est interprété comme une année hébraïque et le comportement est
calculé comme décrit dans la section suivante, "JAHRZEITS".
Votre un drapeau paramètre modifie le comportement de la fonction pour les dates en Adar lors
années bissextiles. le un drapeau is uniquement utilisé si début d'année est une DATES type.
Votre un drapeau n'affecte les calculs de date que si hebmon est spécifié comme "Adar". En saut
années, l'algorithme suivant est suivi :
o Si un drapeau est 0, alors la date est déclenchée dans Adar B. C'est la valeur par défaut.
o Si un drapeau est 1, alors la date est déclenchée dans Adar A. Cela peut être
approprié pour les jahrzeits dans la tradition ashkénaze ; consulter un rabbin.
o Si un drapeau est 2, alors la date est déclenchée à la fois dans Adar A et Adar B d'un
année bissextile. Certains Ashkénazes exécutent le jahrzeit à la fois en Adar A et en Adar B.
JAHRZEIT
Un jahrzeit est une commémoration annuelle de la mort de quelqu'un. Elle se déroule normalement le
anniversaire du décès, mais peut être retardé si l'inhumation est retardée - consulter un rabbin pour
pour en savoir davantage.
De plus, comme certains mois changent de longueur, il n'est pas évident de savoir quel jour
anniversaire d'un décès est. Les règles suivantes sont utilisées :
o Si le décès est survenu le 30 Heshvan, et Heshvan l'année suivant le décès est
ciseleur, alors le jahrzeit est observé le 29 Heshvan des années où Heshvan est
ciseleur. Sinon, le yahrzeit est observé le 1 Kislev lorsque Heshvan est ciseleur.
o Si le décès est survenu le 30 Kislev, et Kislev dans l'année suivant le décès est
ciseleur, alors le jahrzeit est observé le 29 Kislev les années où Kislev est ciseleur.
Sinon, le yahrzeit est observé le 1 Tevet lorsque Kislev est ciseleur.
o Si le décès est survenu le 1-29 Adar A, il est observé le 1-29 Adar dans les années non bissextiles.
o Si le décès est survenu le 30 Adar A, il est observé le 30 Shvat dans une année non bissextile.
Spécifier une année hébraïque pour le année paramètre provoque le comportement correct
sélectionné pour un décès cette année-là. Vous devrez peut-être également spécifier un drapeau, selon votre
tradition.
L'information sur le jahrzeit a été fournie par Frank Yellin, qui a cité "The Comprehensive
Calendrier hébreu" par Arthur Spier, et "Calendrical Calculations" par EM Reingold et
Nahum Dershowitz.
HORS BANDE RAPPELS
Votre SPÉCIALITÉS est utilisé pour transmettre des informations "hors bande" à Rappeler backends, tels
as rappelez-vous or Rem2PS. Ils sont utilisés uniquement lors de la canalisation des données d'un rappeler -p ligne. (Noter
que la spéciale COLOR est une exception ; il rétrograde à l'équivalent de MSG en rappelle
mode de fonctionnement normal.)
Les différents SPÉCIALITÉSs reconnus sont particuliers à chaque backend ; cependant, il y a trois
SPÉCIALITÉSs que tous les backends devraient tenter de prendre en charge. Ils sont actuellement soutenus par
Rem2PS, rappelez-vous et rem2html.
Votre SHADE spécial remplace le psshade() une fonction. Utilisez-le comme ceci :
REM Sat Dim NUANCE SPÉCIALE 128
REM Mon TEINTE SPÉCIALE 255 0 0
Votre SHADE mot-clé est suivi d'un ou de trois chiffres, de 0 à 255. Si l'un
nombre est fourni, il est interprété comme une valeur d'échelle de gris allant du noir (0) au blanc (255).
Si trois nombres sont fournis, ils sont interprétés comme des composants RVB du minimum (0) à
maximum (255). L'exemple ci-dessus nuance les week-ends d'un gris assez foncé et fait du lundi un
rouge entièrement saturé. (Ces nuances apparaissent dans les calendriers produits par Rem2PS, rappelez-vous et
rem2html.)
Votre MOON spécial remplace le psmoon() une fonction. Utilisez-le comme ceci :
REM [date de lune(0)] SPÉCIAL LUNE 0
REM [date de lune(1)] SPÉCIAL LUNE 1
REM [date de lune(2)] SPÉCIAL LUNE 2
REM [date de lune(3)] SPÉCIAL LUNE 3
Ceux-ci dessinent des petites lunes sur les différents calendriers. La syntaxe complète du MOON spécial
est comme suit:
... SPÉCIAL MOON phase moonsize fontsize msg
phase est un nombre de 0 à 3, 0 représentant une nouvelle lune, 1 le premier quartier, 2 une
pleine lune et 3 le dernier quartier.
taille de la lune est le diamètre en unités PostScript de la lune à dessiner. Si omis ou fourni
comme -1, le backend choisit une taille appropriée.
taille de police est la taille de la police en unités PostScript du msg
Msg est un texte supplémentaire placé près du glyphe de la lune.
Notez que seul le Rem2PS prend en charge le back-end taille de la lune et taille de police; les autres backends utilisent
tailles fixes.
Votre COULEUR spécial vous permet de placer des rappels colorés dans le calendrier. Utilisez-le comme ceci :
REM ... COULEUR SPÉCIALE 255 0 0 Ceci est un rappel rouge vif
REM ... COULEUR SPÉCIALE 0 128 0 Ceci est un rappel vert foncé
Vous pouvez épeler COLOR à la manière américaine ("COLOR") ou à la manière britannique ("COLOUR"). Cette
manuel utilisera la méthode américaine.
Immédiatement après COLOR, trois nombres décimaux compris entre 0 et 255
spécifiant respectivement les intensités rouge, verte et bleue. Le reste de la ligne est le
texte à mettre dans le calendrier.
Le spécial COLOR est « doublement spécial », car dans son mode de fonctionnement normal, rappeler traite
un spécial COULEUR tout comme un rappel de type MSG. Aussi, si vous invoquez Rappeler au -cc...,
puis il se rapproche des rappels COULEUR SPÉCIALE sur votre terminal.
Votre SEMAINE special vous permet de placer des annotations telles que le numéro de la semaine dans le calendrier. Pour
Par exemple, cela numéroterait chaque lundi avec le numéro de semaine ISO 8601. Le numéro de semaine est
montré comme ceci : "(Wn)" dans cet exemple, mais vous pouvez mettre le texte de votre choix après le
Mot clé SEMAINE.
REM Lundi SEMAINE SPÉCIALE (W[weekno()])
DIVERS
COMMAND ABRÉVIATIONS
Les jetons suivants peuvent être abrégés :
o REM peut être omis - il est implicite si aucune autre commande valide n'est présente.
o EFFACER-OMETTRE-CONTEXTE -> #
o POUSSER-OMETTRE-CONTEXTE -> PUSH
o POP-OMIT-CONTEXTE -> POP
o VARSOVIES -> JETER
o BANNIÈRE -> INTERDIRE
o COMPRENDRE -> INC
o NUMÉRISER À PARTIR -> SCAN
BONJOUR EXEMPLES
Cette section est un échantillon de ce que vous pouvez faire avec Rappeler.
REM 5 Fév 1991 À 14:00 +45 *30 \
RUN mail -s "Réunion à %2" $LOGNAME
Le 5 février 1991, ce rappel vous enverra par courrier des rappels d'une réunion de 2h00 à 1h15,
1h45 et 2h00. L'objet du mail sera "Rendez-vous à 2h00" et le corps
du message sera vide.
REM AT 17:00 RUN echo "5:00 - GO HOME!" | xless -g +0+0 &
Ce rappel affichera une fenêtre xless à 5h00 tous les jours. La fenêtre xless
contenir la ligne "5h00 - RENTREZ À LA MAISON !"
REM AT 23:59 RUN (sommeil 120; rappel -a [filename()]) &
Ce rappel s'exécutera à minuit moins une. Cela provoquera une nouvelle Rappeler processus
commencer à minuit une minute. Cela vous permet d'avoir un service de rappel continu
afin que vous puissiez travailler toute la nuit et toujours recevoir des rappels programmés pour tôt le matin.
Notez que cette astuce n'est plus nécessaire, à condition que vous exécutiez Rappeler en mode démon.
rappel -c12 /dev/null janvier 1993
Cette invocation de Rappeler le fera imprimer un calendrier pour 1993, avec toutes les entrées
laissé vide.
REM CAL [trigdate()-date(année(trigdate()), 1, 1)+1]
Cet exemple met une entrée dans chaque case d'un calendrier indiquant le nombre (1-365 ou 366) de
le jour de l'année.
REM Mar 2 Nov SATISFY (année(trigdate())%4) == 0
SI trigvalid()
REM [date de déclenchement()] ++5 MSG \
Élection présidentielle américaine !!
Endif
Cet exemple vous avertit 5 jours avant chaque élection présidentielle américaine. La première REM
La commande calcule le premier mardi après le premier lundi de novembre. (C'est
équivalent au premier mardi du 2 novembre ou après.) Le SATISFAIRE clause assure que
la date de déclenchement n'est émise que les années électorales, qui sont des multiples de 4. La seconde
REM commande émet en fait le rappel.
DÉTAILS À PROPOS TRIGGER CALCUL
Voici une conceptuel description de la façon dont les déclencheurs sont calculés. Noter que Rappeler
utilise en fait une procédure beaucoup plus efficace, mais les résultats sont les mêmes que si le
procédure conceptuelle avait été suivie.
Rappeler commence à partir de la date actuelle (c'est-à-dire la valeur de aujourd'hui()) et scanne vers l'avant,
examinant chaque jour un à la fois jusqu'à ce qu'il trouve une date qui satisfait le déclencheur, ou peut
prouver qu'aucune de ces dates (au plus tard le aujourd'hui()) existent.
If Rappeler est en train d'exécuter un SATISFAIRE-type rappel, il évalue l'expression avec
date de déclenchement() mis à la date trouvée ci-dessus. Si l'expression vaut zéro ou la valeur null
chaîne, Rappeler poursuit la procédure de numérisation décrite ci-dessus, en commençant par le jour
après le déclencheur trouvé ci-dessus.
Votre NUMÉRISER À PARTIR clause (ayant une syntaxe similaire à JUSQU'À CE QUE) peut modifier la stratégie de recherche
utilisé. Dans ce cas, Rappeler commence la procédure de numérisation à date_scan, qui est la date
spécifié dans le NUMÉRISER À PARTIR clause. Par exemple:
REM Mon 1 SCANFROM 17 janvier 1992 MSG Foo
L'exemple ci-dessus aura toujours comme date de déclenchement le lundi 3 février 1992. C'est-à-dire
car Rappeler commence la numérisation à partir du 17 janvier 1992 et arrête la numérisation dès qu'il atteint
une date qui satisfait "Mon 1."
L'utilisation principale de NUMÉRISER À PARTIR est dans des situations où vous voulez calculer les positions de
vacances flottantes. Considérez l'exemple de la fête du travail montré beaucoup plus tôt. La fête du travail est la
premier lundi de septembre. Il peut se déplacer sur une plage de 7 jours. Considérer ce qui suit
séquence:
REM Lundi 1er septembre SCANFROM [aujourd'hui()-7] SATISFAIRE 1
OMETTRE [date de déclenchement()]
REM Lundi APRÈS MSG Bonjour
Votre NUMÉRISER À PARTIR clause garantit que Rappeler commence la numérisation à partir de 7 jours avant le courant
Date. Cela garantit que la fête du Travail pour l'année en cours continuera d'être déclenchée
jusqu'à 7 jours après qu'il se soit produit. Cela vous permet d'utiliser en toute sécurité le mot-clé AFTER comme
montré.
En général, utilisez NUMÉRISER À PARTIR comme indiqué pour le coffre-fort mobile OMIT. Le montant que vous devez numériser
par (7 jours dans l'exemple ci-dessus) dépend du nombre de jours consécutifs possibles Omis
jours qui peuvent survenir, et sur la plage du congé mobile. Généralement, une valeur de 7 est
sûr.
Votre De clause fonctionne presque comme le contrepoint de JUSQU'À CE QUE. Il empêche le rappel
de se déclencher avant le De Date. Par exemple, le rappel suivant :
REM Lundi Jeu DU 23 juillet 2007 AU 2 août 2007 MSG Test
se déclenchera les lundis et jeudis entre le 23 juillet 2007 et le 2 août 2007 inclus.
De n'est en fait que du sucre syntaxique ; vous pouvez implémenter le rappel ci-dessus comme suit :
REM Lundi Jeu SCANFROM [max(aujourd'hui(), '2007-07-23')] \
JUSQU'AU 2 août 2007 Test MSG
mais c'est beaucoup plus difficile à lire. Intérieurement, Rappeler traite De exactement comme illustré
en utilisant NUMÉRISER À PARTIR. Pour cette raison, vous ne pouvez pas utiliser les deux De et NUMÉRISER À PARTIR.
Notez que si vous en utilisez un REM commande pour calculer une date de déclenchement, effectuer la date
calculs (addition ou soustraction, par exemple) puis utiliser la date modifiée dans un
ultérieur REM commande, les résultats Au cours de cette réunion, Matthew a obtenu de précieux conseils et Linda lui a demandé de la tenir au courant de ses progrès. pas be est ce que nous faisons you prévu. C'est parce que vous
ont contourné le mécanisme de balayage normal. Tu devrais essayer d'écrire REM commandes
qui calculent les dates de déclenchement qui peuvent être utilisées telles quelles dans les REM commandes. le
fichier "defs.rem" fourni avec le Rappeler distribution contient des exemples.
DÉTAILS À PROPOS TRIGVALIDE()
Votre trigvalid() la fonction renvoie 1 si Rappeler pourrait trouver une date de déclenchement pour le précédent
REM or IFTRIG commander. Plus précisément, il renvoie 1 si Rappeler trouve une date pas avant
le starting données of le balayage qui satisfait le déclencheur. De plus, il y a un
cas particulier dans lequel trigvalid() renvoie 1 et date de déclenchement() renvoie un résultat significatif :
Si la REM or IFTRIG la commande ne contient pas de JUSQU'À CE QUE clause, et contenait tous les
journée, mois et une année composants, puis Rappeler calculera correctement une date de déclenchement, même si
il se trouve que c'est avant le début de la numérisation. Notez que ce comportement n'est pas vrai pour
les versions d' Rappeler avant 03.00.01.
Utiliser le rappel en ligne à l'aide des services onworks.net