Este es el recordatorio de comando que se puede ejecutar en el proveedor de alojamiento gratuito OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, el emulador en línea de Windows o el emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
recordar - un sofisticado servicio de recordatorio
SINOPSIS
Remind [opciones] nombre de archivo [datos] [*reps] [time]
DESCRIPCIÓN
Remind lee el suministrado nombre de archivo y ejecuta los comandos que se encuentran en él. los comandos
se utilizan para emitir recordatorios y alarmas. Cada recordatorio o alarma puede constar de un mensaje
enviado a la salida estándar, o un programa para ser ejecutado.
If nombre de archivo se especifica como un solo guión '-', entonces Remind toma su entrada del estándar
aporte. Esto también permite implícitamente la -o opción, que se describe a continuación.
If nombre de archivo pasa a ser un directorio en lugar de un archivo simple, entonces Remind lee todo
los archivos en ese directorio que coincidan con el patrón "*.rem". Los archivos se leen en orden
pedido; el orden de clasificación puede depender de su ubicación, pero debe coincidir con el orden de clasificación utilizado por
el shell para expandir "*.rem".
Remind lee sus archivos desde el principio hasta el final, o hasta que encuentra un
línea cuyo único contenido es "__EOF__" (sin las comillas). Cualquier cosa después de __EOF__
el marcador se ignora por completo.
OPCIONES
Remind tiene un montón de opciones. Si eres nuevo en el programa, ignóralos por ahora y omite
a la sección "Archivos de recordatorio".
-n El sistema -n causas de la opción Remind para imprimir el Next ocurrencia de cada recordatorio en un
formato de calendario sencillo. Puede ordenar esto por fecha canalizando la salida a través de
sort(1).
-j[n] Carreras Remind en el modo de "purga" para deshacerse de los recordatorios vencidos. Ver la sección PURGA
MODO para más detalles.
-r El sistema -r opción desactiva CORRE directivas y la cáscara() función. A partir de Recordar
3.00.17, usando -u implica -r.
-c[banderas]n
El sistema -c causas de la opción Remind para producir un calendario que se envía a la salida estándar.
Si proporciona un número n, luego se generará un calendario para n meses, comenzando
con el mes actual. De forma predeterminada, se muestra un calendario solo para el mes actual.
producido.
Puedes preceder n (si lo hay) con un conjunto de banderas. Las banderas son las siguientes:
'+' provoca un calendario para n semanas para ser producido.
'A' causas Remind para mostrar recordatorios en el calendario en el día en que realmente ocurren
as well as en cualquier día anterior especificado por el recordatorio delta.
'l' causas Remind para usar caracteres de dibujo de líneas VT100 para dibujar el calendario. El
los caracteres están codificados y solo funcionarán en terminales que emulan el VT00
conjunto de caracteres de dibujo de líneas.
'u' es similar a 'l', pero causa Remind utilizar caracteres de dibujo lineal UNICODE para dibujar
el calendario. Los caracteres están codificados y solo funcionarán en terminales que
están configurados para la codificación de caracteres UTF-8.
'C' causas Remind para usar secuencias de escape VT100 para aproximar recordatorios de COLORES ESPECIALES.
La aproximación es (por necesidad) muy gruesa, porque el VT100 solo tiene ocho
diferentes secuencias de color, cada una con uno de dos brillos. Un componente de color
superior a 64 se considera "encendido", y si alguno de los tres componentes de color está
superior a 128, el color se considera "brillante".
-wcolumna[,almohadilla[,spc]]]
El sistema -w La opción especifica el ancho de salida, el relleno y el espaciado del formato
salida de calendario. Columna especifica el número de columnas en el dispositivo de salida, y
el valor predeterminado es 80. Pad especifica cuántas líneas usar para "rellenar" los cuadros de calendario vacíos.
El valor predeterminado es 5. Si tiene muchos recordatorios en ciertos días que hacen que su
calendario es demasiado grande para caber en una página, puede intentar reducir almohadilla hacer el vacío
cajas más pequeñas. Spc especifica cuántas líneas en blanco dejar entre el número del día
y la primera entrada de recordatorio. El valor predeterminado es 1.
Cualquiera de columna, almohadilla or spc puede omitirse, siempre que proporcione el número correcto de
comas No utilice ningún espacio en la opción.
-s[a]n El sistema -s La opción es muy similar a la -c opción, excepto que el calendario de salida es
no formateado. Se enumera en un "formato simple" que se puede utilizar como entrada para
programas más sofisticados para dibujar calendarios. Si n comienza con "+", entonces es
interpretado como un número de semanas.
Si sigue inmediatamente el s con la carta a, entonces Remind muestra recordatorios
en el calendario el día en que realmente ocurren as well as en cualquier día anterior
especificado por el recordatorio delta.
-p[a]n El sistema -p La opción es muy similar a la -s opción, excepto que la salida contiene
información adicional para uso del rem2ps programa, que crea un PostScript
calendario. Para esta opción, n no puede comenzar con "+"; debe especificar un número de
meses. El formato de la -p la salida se describe en el rem2ps(1) página de manual Si
inmediatamente sigues el p con la carta a, entonces Remind muestra recordatorios en
el calendario en el día en que realmente ocurren as well as en cualquier día anterior
especificado por el recordatorio delta.
-l Si usa la opción -l junto con la opción -p, entonces Remind salidas
información adicional para programas back-end tales como rem2ps. Este adicional
la información permite que los programas de back-end correlacionen un recordatorio con el archivo de origen
y el número de línea que lo produjo.
-m El sistema -m La opción causa la -c or -p opciones para producir un calendario cuya primera columna
es lunes en lugar de domingo. (Esto se ajusta al estándar internacional.)
-v El sistema -v opción hace que la salida de Remind un poco más detallado. Actualmente, este
causas Remind para hacer eco de una línea incorrecta en caso de un error, y para imprimir una seguridad
mensaje si un script prueba la variable de sistema $RunOff.
-o El sistema -o causas de la opción Remind ignorar todo UNA VEZ directivas
-t El sistema -t causas de la opción Remind para activar todos los recordatorios no vencidos, independientemente de la
delta suministrado para cada recordatorio.
-tn Si proporciona un número n después de la -t opción, entonces Remind pretende que cada no-
recordatorio caducado tiene un delta of n días y activa recordatorios en consecuencia.
-h El sistema -h opción ("silencio...") suprime ciertos mensajes de advertencia e información. En
en particular, si no se activan recordatorios, este modo no produce ninguna salida.
-a El sistema -a causas de la opción Remind no activar inmediatamente recordatorios cronometrados que activan
en el día actual. también causa Remind no colocar recordatorios cronometrados en un
calendario. Si proporciona dos o más -a opciones, entonces Remind will gatillo cronometrado
recordatorios que están en el futuro, pero no activarán recordatorios cronometrados cuyo tiempo
ha pasado. (Independientemente de cuántos -a opciones que usted proporciona, Remind no incluirá
recordatorios cronometrados en el calendario si al menos uno -a se utiliza la opción.)
-q El sistema -q causas de la opción Remind no poner en cola recordatorios cronometrados para su posterior ejecución.
-f El sistema -f causas de la opción Remind permanecer en primer plano cuando el procesamiento está en cola
recordatorios, en lugar de utilizar un proceso en segundo plano para manejarlos.
-e El sistema -e opción desvía los mensajes de error (normalmente enviados al flujo de error estándar)
al flujo de salida estándar.
-dcaracteres
El sistema -d La opción habilita ciertos modos de depuración. El caracteres especificar qué modos
habilitar:
e Hacer eco de todas las líneas de entrada
x Seguimiento de todas las evaluaciones de expresiones
t Mostrar todo el cálculo de la fecha de activación
v Volcar la tabla de variables después de la ejecución del script de recordatorio
l Líneas de eco al mostrar mensajes de error
f Seguimiento de la lectura de archivos de recordatorio
-g[anuncio[anuncio[anuncio[anuncio]]]]
Normalmente, los recordatorios se emiten en el orden en que aparecen en el
guión de recordatorio. El -g opción causa Remind para ordenar los recordatorios por fecha y hora
antes de emitirlos. el opcional a y d los caracteres especifican el orden de clasificación
(ascendente o descendente) para los campos de fecha, hora y prioridad. Ver la sección
"Clasificación de recordatorios" para obtener más información.
-b[n] Configure el formato de hora para las salidas de calendario y calendario simple. N puede variar de
0 a 2, con el valor predeterminado 0. Un valor de 0 hace que los tiempos se inserten en 12 horas
(am/pm) formato. 1 hace que los tiempos se inserten en formato de 24 horas, y 2 inhibe
la inserción automática de tiempos en la salida del calendario.
-x[n] Establece el límite de iteración para el SATISFACER cláusula de un REM mando. El valor predeterminado es 150.
-kcmd En lugar de simplemente imprimir MSG-escribe recordatorios, esto hace que se pasen al
soluciones y cmd. Debe usar '%s' donde desea que aparezca el cuerpo, y es posible que deba
encierre esta opción entre comillas. Tenga en cuenta que todos los caracteres shell en el cuerpo del
recordatorio se escapan con una barra invertida, y todo el cuerpo del recordatorio es
pasa como un único argumento. Tenga en cuenta que esta opción anula de la forma más -r opción y el
CORRE OFF mando.
Como ejemplo, suponga que tiene un programa X Window llamado xmensaje que aparece un
y muestra sus argumentos de invocación. Podrías usar:
recordar '-kxmensaje %s &'...
tener todos tus MSG-escribe recordatorios procesados usando xmessage.
Una palabra de advertencia: es muy fácil generar docenas de procesos xmessage con el
técnica anterior. Así que ten mucho cuidado. Porque todos los caracteres shell y espacios en blanco
se escapan, el programa que ejecuta con el -k opción debe estar preparado para manejar
el mensaje completo como un único argumento.
-z[n] Carreras Remind en el modo demonio. Si n
se suministra, especifica con qué frecuencia (en minutos) Remind debe despertarse para comprobar si
el script de recordatorio ha sido cambiado. N el valor predeterminado es 1 y puede oscilar entre 1 y 60.
Tenga en cuenta que el uso de -z opción también habilita la -f .
Si proporciona la opción -z0, Remind se ejecuta en un modo especial llamado servidor modo.
Esto está documentado en la página del manual de tkremind; ver recordar(1).
-unombre Ron Remind con el uid y gid del usuario especificado por nombre . La opción cambia
el uid y gid como se describe, y establece las variables de entorno HOME, SHELL y
USER al directorio de inicio, shell y nombre de usuario, respectivamente, del especificado
usuario. LOGNAME también se establece en el nombre de usuario especificado. Esta opción está pensada para
use scripts de shell que envían recordatorios a todos los usuarios. Tenga en cuenta que a partir de Recordar
3.00.17, usando -u implica -r -- la directiva RUN y las funciones shell() son
discapacitado.
Los usuarios no root también pueden usar el -u opción. Sin embargo, en este caso, sólo cambia
las variables de entorno como se ha descrito anteriormente. No cambia el uid efectivo
o gid.
-y Causas Remind para sintetizar una etiqueta para cualquier recordatorio que carezca de una cláusula TAG.
-ivar=expr
Establece el valor del especificado var a expry conservas var. Expr puede ser cualquiera
IMPORTANTE Remind expresión. Consulte la sección "Inicialización de variables en el comando
Línea" para más detalles.
-idivertida(args)=definición
Le permite definir una función en la línea de comando.
Si proporciona un datos en la línea de comando, debe consistir en day mes year, donde el day is
el día del mes, mes es al menos las tres primeras letras del nombre en inglés de la
mes, y year es un año (los 4 dígitos) desde 1990 hasta aproximadamente 2075. Puede omitir el
day, que entonces por defecto es 1.
Si proporciona un datos en la línea de comando, entonces Remind lo usa, en lugar del real
fecha del sistema, como su noción de "hoy". Esto le permite crear calendarios para meses futuros,
o prueba para ver cómo se activarán tus recordatorios en el futuro. Del mismo modo, puede
suministrar un time (en formato de 24 horas, por ejemplo, 17:15) para establecer Remindla noción de "ahora" para
un tiempo en particular suministro de un time en la línea de comando también habilita implícitamente el -q
opción y desactiva la -z .
Si prefiere especificar la fecha de manera más sucinta, puede proporcionarla como AAAA-MM-DD o
AAAA/MM/DD. Incluso puede proporcionar una fecha y hora en la línea de comando como un argumento:
AAAA-MM-DD@HH:MM.
Además, puede proporcionar un repetir parámetro, que tiene la forma *número. Esto causa
Remind para ejecutarse número veces, con la fecha incrementando en cada iteración. puede que tengas que
encierre el parámetro entre comillas para evitar la expansión del shell. Consulte la subsección "Repetidas
Ejecución" en la sección "Modo Calendario" para más información.
- RECORDATORIO ARCHIVOS
Remind utiliza scripts para controlar su funcionamiento. Puede utilizar cualquier editor de texto capaz de
crear archivos ASCII simples para crear un Remind texto. Los comandos dentro de un script pueden
van desde lo muy simple y casi inmediatamente comprensible:
REM 6 Ene MSG Cumpleaños de Dianne
a lo barroco y oscuro:
REM [fecha(esteaño, 1, 1) + 180] ++5 OMITIR \
sáb dom ANTES de MSG [ord(thisyear-1980)] pago vencido %b!
Un archivo de recordatorio consta de comandos, con un comando por línea. Varias líneas pueden ser
continuó usando el carácter de barra invertida, como en el ejemplo anterior. En este caso, todos
las líneas concatenadas son tratadas como una sola línea por Remind. Tenga en cuenta que si un error
ocurre, Remind informa el número de línea de la última línea de una línea continua.
Remind ignora las líneas en blanco y las líneas que comienzan con '#' o ';' caracteres. Usted puede
utilice el punto y coma como carácter de comentario si desea pasar un Remind guión a través de la C
preprocesador, que interpreta el carácter '#' como el comienzo de un preprocesamiento
Directiva.
Tenga en cuenta que Remind procesa las continuaciones de línea antes que nada. Por ejemplo:
# Esto es un comentario \
Esta línea es parte del comentario debido a la continuación de la línea \
y así sucesivamente.
REM MSG Esta línea no se ignora (no \ arriba)
Remind no distingue entre mayúsculas y minúsculas; generalmente puede usar cualquier combinación de mayúsculas o minúsculas
para comandos, parámetros, opciones de invocación, etc.
EL REM COMANDO
El comando más poderoso en un Remind el guion es el REM mando. Este comando es
responsable de emitir recordatorios. Su sintaxis es:
REM [UNA VEZ] [especificación_fecha] [back] [delta] [repetir] [PRIORIDAD prio] [OMITIR | ANTES |
DESPUÉS DE ] [OMITIR omitir_lista] [OMITIRFUNC omitir_función] [AT time [tdelta] [trepear]]
[PROGRAMADO función_programada] [WARN función_advertencia] [HASTA fecha de caducidad | MEDIANTE ultima cita]
[ESCANEAR DESDE fecha_escaneo | DESDE start_date] [DURACIÓN duración] [ETIQUETA etiqueta]MSG | MSF |
CORRE | CAL | SATISFACER | SPECIAL especial | PS | ARCHIVOPS> cuerpo
Las partes de la REM El comando se puede especificar en cualquier orden, excepto que el cuerpo debes venir
inmediatamente después del MSG, CORRE , CAL, PS, ARCHIVOPS or SATISFACER palabra clave.
El sistema REM token es opcional, siempre que el resto del comando no se pueda confundir
Por otro Remind comando como OMITIR or CORRE . La porción de la REM comando antes del
MSG, MSF CORRE , CAL or SATISFACER cláusula se llama detonante.
GMS, MSF, CORRER, CALIFORNIA, ESPECIAL, PS y ARCHIVOPS
Estas palabras clave denotan la tipo del recordatorio (SATISFACER es más complicado y será
se explica más adelante). MSG-escribir recordatorio normalmente imprime un mensaje en la salida estándar,
después de pasar el cuerpo a través de un filtro de sustitución especial, descrito en la sección
"El filtro de sustitución". Sin embargo, si ha utilizado el -k opción de línea de comandos, entonces
MSG-los recordatorios de tipo se pasan al programa correspondiente. Tenga en cuenta que las opciones -c, -s,
-p y -n desactivar el -k .
Tenga en cuenta que puede omitir el tipo de recordatorio, en cuyo caso el valor predeterminado es MSG. Así que puedes
escribir:
6 de enero Cumpleaños de Dianne
aunque esto no es recomendable.
El sistema MSF La palabra clave es casi la misma que la MSG palabra clave, excepto que el recordatorio es
formateado para encajar en un formato similar a un párrafo. Tres variables del sistema controlan el
formateo de MSF-escribe recordatorios - son $primera sangría, $SubsIndent y $ ancho de formulario.
Se tratan en la sección "Variables del sistema". El MSF palabra clave causa el espaciado
de su recordatorio para modificarse: los espacios adicionales se descartan y se colocan dos espacios
después de puntos y otros caracteres, según lo especificado por las variables del sistema $FinEnviado y
$FinEnviadoIg. Tenga en cuenta que si el cuerpo del recordatorio incluye caracteres de nueva línea (colocados
allí con la secuencia %_), entonces las nuevas líneas se tratan como el comienzo de una nueva
párrafos y el $primera sangría la sangría se utiliza para la siguiente línea. Puedes usar dos
saltos de línea consecutivos para que se emitan párrafos espaciados desde un solo cuerpo de recordatorio.
A CORRE -tipo recordatorio también pasa el cuerpo a través del filtro de sustitución, pero luego
ejecuta el resultado como un comando del sistema. A CAL-el tipo de recordatorio se usa solo para colocar
entradas en el calendario producidas cuando Remind se ejecuta con el -c, -s or -p .
A PS or ARCHIVOPSEl recordatorio de tipo se utiliza para pasar el código PostScript directamente a la impresora cuando
producción de calendarios PostScript. Esto se puede usar para sombrear ciertas entradas del calendario (ver
la función psshade()), incluir gráficos en el calendario, o casi cualquier otro propósito que
puede pensar. No debes usar este tipo de recordatorios a menos que seas un experto
Programador PostScript. El PS y ARCHIVOPS los recordatorios se ignoran a menos que Remind se ejecuta con
de la forma más -p opción. Consulte la sección "Más acerca de PostScript" para obtener más detalles.
A SPECIALEl recordatorio de tipo se utiliza para pasar información "fuera de banda" de Remind a una
back-end de producción de calendario. Debe ir seguido de una palabra que indique el tipo de
datos especiales que se pasan. El tipo de un recordatorio especial depende del back-end. Para
de la forma más rem2ps parte trasera, SPECIAL PostScript es equivalente a una PS-escribir recordatorio, y SPECIAL
Archivo PS es equivalente a una ARCHIVOPS-escriba recordatorio. el cuerpo de un SPECIAL recordatorio es
obviamente depende del back-end.
FECHA ESPECIFICACIONES
A especificación_fecha consta de cero a cuatro partes. Estas partes son day (dia del mes), mes
(nombre del mes), year y día laborable. Mes y día laborable son los nombres en inglés de los meses y
días de semana Se deben utilizar al menos los tres primeros caracteres. Los siguientes son ejemplos
de las diversas partes de un especificación_fecha:
día: 1, 22, 31, 14, 3
mes: ENERO, feb, marzo, abr, mayo, ago
año: 1990, 1993, 2030, 95 (interpretado como 1995). El año puede oscilar entre 1990 y 2075.
día laborable:
LUNES, MAR, MIÉRCOLES, JUE, VIERNES, SÁBADO, DOMINGO
Tenga en cuenta que puede haber varios día laborable componentes separados por espacios en un fecha_espec.
INTERPRETACIÓN OF FECHA ESPECIFICACIONES
Los siguientes ejemplos muestran cómo se interpretan las especificaciones de fecha.
1. Especificación de fecha nula: el recordatorio se activa todos los días. La fecha de activación de un
la ejecución específica es simplemente la fecha actual del sistema.
2. Solamente day regalo. El recordatorio se activa el día especificado de cada mes. El
la fecha de activación para una ejecución en particular es el día más cercano a la fecha actual del sistema. Para
ejemplo:
REM 1 MSG Primero de cada mes.
REM 31 MSG 31 de cada mes que tiene 31 días.
3. Solamente mes regalo. El recordatorio se activa todos los días del mes especificado.
Ejemplo:
REM Feb MSG Todos los días de febrero
4. day y mes regalo. Ejemplos:
REM 6 Ene MSG Cada 6 de enero
REM 29 de febrero MSG Cada 29 de febrero
5. Solamente year regalo. Ejemplo:
REM 1991 MSG Todos los días en 1991
6. year y day regalo. Ejemplos:
REM 1 1990 MSG 1 de cada mes en 1990
REM 1992 23 MSG 23 de cada mes en 1992
7. year y mes regalo. Ejemplos:
REM Feb 1991 MSG Todos los días en Feb 1991
REM 1992 septiembre MSG Todos los días en septiembre 1992
8. año, mes y day regalo. Ejemplos:
REM 8 de enero de 1991 MSG 8 de enero de 1991.
REM 1992 9 de marzo MSG 9 de marzo de 1992.
9. día laborable solo. Ejemplos:
REM Sat MSG Todos los sábados
REM Lun Mar Mié Jue Vie MSG Todos los días hábiles
REM Lunes Miércoles MSG Todos los lunes y miércoles
10. día laborable y day regalo. Ejemplos:
REM Sat 1 MSG Primer sábado de cada mes
REM lun mar mié jue vie 15 \
MSG 1er día hábil después del 15 de cada mes
11. día laborable y mes regalo. Ejemplos:
REM Mon March MSG Todos los lunes de marzo
REM lun mar mié jue vie feb MSG Todos los días hábiles en febrero
12. día laborable, mes y day regalo. Ejemplos:
REM Lun 1 de marzo MSG Primer lunes de marzo
REM Sábado Domingo 15 de julio MSG Primer sábado o domingo a partir del 15 de julio
13. día laborable y year regalo. Ejemplo:
REM Sáb Dom 1991 MSG Todos los sábados y domingos de 1991
14. día laborable, day y year regalo. Ejemplos:
REM Lun 15 1990 MSG 1er Lun después del 15 de cada mes en 1990
REM lun mar mie jue vie 1 1990 \
MSG 1er día hábil de cada mes en 1990
15. día laborable, mes y year regalo. Ejemplo:
REM Lun Wed 1991 Feb MSG Todos los lunes y miércoles de febrero de 1991.
16. día laborable, día, mes y year regalo. Ejemplo:
REM lun mar mie jue vie 28 oct 1990 \
MSG 1er día hábil a partir del 28 de octubre de 1990.
Tenga en cuenta que cuando ambos día laborable y day están especificados, Remind elige la primera fecha en o
después de lo especificado day que también satisface la día laborable restricción. Hace esto por
elegir la primera fecha en o después de la especificada day que figura en la lista de
días laborables Por lo tanto, un recordatorio como:
REM Lun Mar 28 Oct 1990 MSG Hola
se emitiría recién el lunes 29 de octubre de 1990. No se emitiría el martes 30
de octubre de 1990, ya que el 29 es la primera fecha para satisfacer la día laborable restricciones
TAQUIGRAFÍA FECHA ESPECIFICACIONES
Además de deletrear el día, el mes y el año por separado, puede especificar AAAA-MM-DD
o AAAA/MM/DD. Por ejemplo, las siguientes declaraciones son equivalentes:
REM 5 de junio de 2010 MSG Genial!
REM 2010-06-05 MSJ Genial!
También puede especificar una fecha y hora como AAAA-MM-DD@HH:MM. Estas declaraciones son
equivalente:
REM 19 de diciembre de 2010 a las 16:45 MSG Hola
REM 2010-12-19@16:45 MSG Hola
Hay una sutileza con las especificaciones de fechas abreviadas: las siguientes declaraciones son
no equivalente:
REM 19 de diciembre de 2010 a las 16:45 +60 MSG Hola
REM 2010-12-19@16:45 +60 MSG Hola
En la segunda afirmación, el "+60" es un delta que se aplica a la fecha en lugar de un
tdelta que se aplica al tiempo. Recomendamos usar explícitamente la palabra clave AT con timed
recordatorios.
EL RECORDAR ALGORITMO
Remind utiliza el siguiente algoritmo para calcular una fecha de activación: a partir de la fecha actual
fecha, examina cada día, uno a la vez, hasta que encuentra una fecha que satisface la fecha
especificación, o se prueba a sí mismo que tal fecha no existe. (Realmente, Remind simplemente
se comporta como si usara este algoritmo; sería demasiado lento en la práctica. Internamente,
Remind utiliza técnicas mucho más rápidas para calcular una fecha de activación). Consulte DETALLES SOBRE
CÁLCULO DE DISPARADOR para obtener más información.
HACIA ATRÁS EXPLORACIÓN
A veces, es necesario especificar una fecha como una cantidad de tiempo establecida antes de otra
fecha. Por ejemplo, el último lunes de un mes determinado se computa como el primer lunes de
el próximo mes, menos 7 días. El back especificación en el recordatorio se utiliza en este
caso:
REM Lun 1 -7 MSG Último lunes de cada mes.
A back se especifica con uno o dos guiones seguidos de un número entero. Esto causa Remind a
mover "hacia atrás" de lo que normalmente sería la fecha de activación. La diferencia entre --7
y -7 se explicará cuando el OMITIR se describe la palabra clave.
VIAJES NIVEL AVANZADO ADVERTENCIA
Para algunos recordatorios, es apropiado recibir una advertencia previa del evento. Para
Por ejemplo, es posible que desee recibir un recordatorio del cumpleaños de alguien con varios días de anticipación. El
delta parte de la REM comando logra esto. Se especifica como uno o dos signos "+"
seguido de un número n. Nuevamente, la diferencia entre las formas "+" y "++" será
explicado bajo el OMITIR palabra clave. Remind activará el recordatorio en el activador calculado
fecha, así como en cada uno de los n días antes del evento. Aquí hay unos ejemplos:
REM 6 ene +5 MSG Recordarme el cumpleaños con 5 días de anticipación.
El ejemplo anterior se activaría cada 6 de enero, así como del 1 al 5
de enero.
PERIÓDICO RECORDATORIOS
Ya hemos visto algunos mecanismos incorporados para ciertos tipos de recordatorios periódicos.
Por ejemplo, un evento que ocurre todos los miércoles podría especificarse como:
¡Evento REM Wed MSG!
Sin embargo, los eventos que no se repiten diariamente, semanalmente, mensualmente o anualmente requieren otra
Acercarse. La repetir componente de la REM comando llena esta necesidad. Para usarlo, debes
especificar completamente una fecha (año, mes y día, y opcionalmente el día de la semana). repetir
componente es un asterisco seguido de un número que especifica el período de repetición en días.
Por ejemplo, suponga que le pagan cada dos miércoles y su último día de pago fue
Miércoles, 28 de octubre de 1992. Puede utilizar:
REM 28 de octubre de 1992 *14 MSG Día de pago
Esto emite el recordatorio cada 14 días, a partir de la fecha de activación calculada. Ustedes
puede utilizar delta y back con repetir. Tenga en cuenta, sin embargo, que el back se usa solo para calcular
la fecha de activación inicial; a partir de entonces, el recordatorio se repite con el período especificado.
De manera similar, si especifica un día de la semana, se usa solo para calcular la fecha inicial y
no afecta el período de repetición.
ESCANEAR DESDE y DESDE
El sistema ESCANEAR DESDE y DESDE las palabras clave son para avanzados Remind programadores solamente, y será
se explica en la sección "Detalles sobre el cálculo del disparador" cerca del final de este manual.
Tenga en cuenta que ESCANEAR DESDE está disponible sólo en las versiones de Remind desde el 03.00.04 en adelante. DESDE is
disponible solo a partir del 03.01.00 y posteriores.
PRIORIDAD
El sistema PRIORIDAD La palabra clave debe ir seguida de un número del 0 al 9999. Se utiliza en el calendario.
y al ordenar recordatorios. Si dos recordatorios tienen la misma fecha y hora de activación,
luego se ordenan por prioridad. Si el PRIORIDAD no se proporciona la palabra clave, un valor predeterminado
Se utiliza la prioridad de 5000. (Este valor predeterminado se puede cambiar ajustando la variable del sistema
$PredeterminadoPrio. Consulte la sección "Variables del sistema" para obtener más información).
EXPIRACIÓN FECHAS
Algunos recordatorios deben emitirse periódicamente durante un tiempo determinado, pero luego caducan. Para
ejemplo, suponga que tiene una clase todos los viernes y que su última clase es el 11 de diciembre
1992. Puedes usar:
REM Vie HASTA 11 Dic 1992 Clase MSG hoy.
Otro ejemplo: Suponga que tiene servicio de jurado desde el 30 de noviembre de 1992 hasta el 4 de diciembre de 1992.
El siguiente recordatorio emitirá el mensaje todos los días de su servicio como jurado, así como 2
días de anticipación:
REM 1992-11-30 *1 +2 HASTA 1992-12-04 MSG Servicio de jurado
Tenga en cuenta que repetir de *1 es necesario; sin él, el recordatorio se emitiría solo en
30 de noviembre (y los dos días anteriores).
Como caso especial, puede utilizar el MEDIANTE palabra clave en lugar de *1 y HASTA. El seguimiento
two REM los comandos son equivalentes:
REM 1992-11-30 *1 +2 HASTA 1992-12-04 MSG Servicio de jurado
REM 1992-11-30 +2 HASTA 1992-12-04 MSG Servicio de jurado
EL UNA VEZ PALABRA CLAVE
A veces, es necesario asegurarse de que los recordatorios se ejecuten solo una vez en un día determinado. Para
ejemplo, si tienes un recordatorio que hace una copia de seguridad de tus archivos todos los viernes:
REM Vie RUN do_backup
(Aquí, hacer copia de seguridad se supone que es un programa o script de shell que hace el trabajo.) Si
run Remind desde su secuencia de comandos .login, por ejemplo, e inicia sesión varias veces al día, el
hacer copia de seguridad programa se ejecutará cada vez que inicie sesión. Sin embargo, si utiliza el UNA VEZ keyword
en el recordatorio, el Remind comprueba la última fecha de acceso del script de recordatorio. Si esto es
igual a la fecha actual, Remind asume que ya ha sido ejecutado, y no
emitir recordatorios que contengan UNA VEZ palabra clave.
Tenga en cuenta que si ve o edita su script de recordatorio, la última fecha de acceso se actualizará,
y la UNA VEZ palabra clave no funcionará correctamente. si empiezas Remind con el -o opción,
entonces el UNA VEZ la palabra clave será ignorada.
EN LA ZONA OMITIR DÍAS DE LA SEMANA
El sistema OMITIR parte de la REM El comando se usa para "omitir" ciertos días al contar el delta
or back. Se especifica mediante la palabra clave OMITIR seguido de una lista de días de la semana. Su
la acción se ilustra mejor con ejemplos:
REM 1 +1 OMITIR Sábado Domingo MSG Evento importante
Este recordatorio normalmente se activa el primer día de cada mes, así como el día
que lo precede. Sin embargo, si el primer día del mes cae en domingo o lunes, entonces el
el recordatorio se activa a partir del viernes anterior. Esto se debe a que el delta de +1
no cuenta el sábado o el domingo cuando cuenta hacia atrás desde la fecha de activación hasta
determinar con cuánta antelación dar aviso.
Compare esto con el uso de "++1" en el comando anterior. En este caso, el recordatorio es
se inicia el primero de cada mes, así como el día anterior. Los días omitidos
se cuentan.
REM 1 -1 OMITIR Sáb Dom MSG Último día hábil del mes
Nuevamente, en el ejemplo anterior, el back de -1 normalmente hace que la fecha de activación sea la
último día del mes. Sin embargo, debido a la OMITIR cláusula, si el primero del mes
cae en domingo o lunes, la fecha de activación se retrasa más allá del fin de semana para
Viernes. (Si ha omitido días festivos globalmente, el recordatorio se moverá hacia atrás
ellos, también. Consulte "El comando OMITIR" para obtener más detalles).
En comparación, si hubiéramos usado "--1", el recordatorio se activaría el último día de
el mes, independientemente del OMITIR.
COMPUTADO LOCAL Omite
El sistema OMITIRFUNC frase de la REM El comando le permite proporcionar una función que determina
si se omite o no una fecha. A la función se le pasa un solo parámetro de tipo FECHA,
y debe devolver un número entero distinto de cero si la fecha se considera "omitida" y 0 en caso contrario.
He aquí un ejemplo:
FSET _tercero(x) (día(x) % 3) || \
(númdíasem(x) == 0) || \
(númdíasem(x) == 6)
REM OMITFUNC _tercero DESPUÉS DE MSG Día laborable divisible por 3
En el ejemplo anterior, el recordatorio se activa de lunes a viernes cuyo día del mes
número es divisible por tres. Así es como funciona:
o El sistema OMITIRFUNC _tercera porción causas todos los días para los cuales _tercero(x) devuelve distinto de cero a
ser considerado "omitido". Esto hace que todos los días cuyo número de día del mes sea no a
múltiplo de tres a omitir. Tenga en cuenta que _tercero también devuelve un valor distinto de cero si el
día de la semana es domingo o sábado.
o El sistema DESPUÉS DE La palabra clave hace que el recordatorio se mueva después de un bloque de días omitidos.
La combinación de la palabra clave OMITFUNC y AFTER hace que el recordatorio se emita todos los días.
cuyo número de día del mes es divisible por tres, pero no el sábado ni el domingo.
Tenga en cuenta que si usa OMITIRFUNC, entonces un local OMITIR is ignorado como son all global OMITIR. Si
desea omitir días de la semana específicos, su función de omisión deberá probarlos
específicamente. Si quieres tener en cuenta el global OMITIR contexto, entonces su omisión
la función necesitará probar eso explícitamente (usando el se omite() función.)
Tenga en cuenta que una incorrecta OMITIRFUNC podría hacer que todos los días se consideren omitidos. Para eso
razón, cuando Remind busca a través de días omitidos, finaliza la búsqueda después de la
SATISFACER límite de iteración (opción de línea de comando -x.)
TIEMPO RECORDATORIOS
Los recordatorios cronometrados son aquellos que tienen un AT palabra clave seguida de un time y opcional tdelta
y trepear. time debe especificarse en formato de 24 horas, con 0:00 representando
medianoche, 12:00 representa el mediodía y 23:59 representa un minuto para la medianoche. Usted puede
use dos puntos o un punto para separar las horas de los minutos. Es decir, 13:39 y
13.39 son equivalentes.
Remind trata los recordatorios cronometrados de forma especial. Si la fecha de activación de un recordatorio cronometrado es el
igual que la fecha actual del sistema, el recordatorio se pone en cola para una activación posterior. Cuándo Remind
ha terminado de procesar el archivo de recordatorio, se pone en segundo plano y se activa
recordatorios cronometrados cuando la hora del sistema llegó a la hora especificada.
Si la fecha de activación es no igual que la fecha del sistema, el recordatorio no está en cola.
Por ejemplo, el siguiente recordatorio, activado todos los días hábiles, emitirá un mensaje
diciéndote que te vayas a las 5:00pm:
REM Lunes Martes Miércoles Jueves Viernes A LAS 17:00 MSG ¡Hora de irse!
El siguiente recordatorio se activará los jueves y viernes, pero solo estará en cola
los viernes:
REM Vie ++1 A LAS 13:00 MSG Almuerzo a la 1pm Viernes.
El sistema tdelta y trepear tener la misma forma que un repetir y delta, pero se especifican en
minutos. Por ejemplo, este recordatorio se activará a las 12:00 p. m., así como a los 45 minutos.
antes:
REM A LAS 12:00 +45 MSG Ejemplo
Se emitirá lo siguiente a partir de las 10:45, cada media hora hasta las 11:45, y nuevamente a las
mediodía.
REM A LAS 12:00 +75 *30 MSG Ejemplo2
El "+75" significa que el recordatorio se emite a partir de 75 minutos antes del mediodía; en otra
palabras, a las 10:45. El *30 especifica que el recordatorio se emitirá posteriormente cada
30 minutos. Tenga en cuenta que el recordatorio siempre se emite a la hora especificada, incluso si el
tdelta no es múltiplo de trepear. Entonces, el ejemplo anterior se emite a las 10:45 am,
11:15, 11:45 y 12:00 horas. Tenga en cuenta que en la especificación de tiempo, no hay
distinción entre las formas "+" y "++" de tdelta.
Normalmente, Remind emitirá recordatorios cronometrados a medida que procesa el script de recordatorio, también
como ponerlos en cola para más tarde. Si tu no quieres Remind para emitir los recordatorios cuando
procesando el script, pero solo para ponerlos en cola para más tarde, use el -a opción de línea de comandos.
Si no desea que los recordatorios se pongan en cola para más tarde, use el -q opción de línea de comandos.
Normalmente, Remind bifurca un proceso en segundo plano para manejar los recordatorios en cola. Si quieres
Remind para permanecer en primer plano, utilice el -f opción de línea de comandos. Esto es útil, para
ejemplo, en scripts .xinitrc, donde puede usar el comando:
recordar -fa misrecordatorios &
Esto asegura que cuando salga de X-Windows, el Remind se mata el proceso.
ADVERTENCIA ACERCA DE TIEMPO RECORDATORIOS
Nota: si utiliza funciones o variables definidas por el usuario (descritas más adelante) en los cuerpos de
recordatorios cronometrados, luego cuando los recordatorios cronometrados están activados, las variables y funciones
tener las definiciones que estaban vigentes al final del script de recordatorio. Estos
las definiciones pueden no ser necesariamente los que estaban en vigor en el momento en que se hizo el recordatorio
puesto en cola.
EL PROGRAMADO Y WARN PALABRAS CLAVE
El sistema PROGRAMADO La palabra clave permite un control más preciso sobre la activación de recordatorios cronometrados, y
de la forma más WARN La palabra clave permite un control preciso sobre la activación anticipada de todo tipo de
recordatorios Sin embargo, la discusión debe posponerse hasta después de las expresiones y definiciones definidas por el usuario.
se explican las funciones. Consulte el subapartado "Programación precisa" más adelante.
ETIQUETA Y DURACIÓN
El sistema ETIQUETA palabra clave le permite "etiquetar" ciertos recordatorios. Esta facilidad es utilizada por ciertos back-
fines o sistemas construidos alrededor Remind, Tales como TkRecordar. Estos back-ends tienen
reglas sobre etiquetas; vea su documentación para más detalles.
El sistema ETIQUETA La palabra clave va seguida de una etiqueta que consta de hasta 48 caracteres. puedes tener como
tantas cláusulas TAG como desee en una instrucción REM dada.
Si proporciona el -y opción de Remind, entonces cualquier recordatorio que carezca de ETIQUETA tendrá uno
sintetizado. La etiqueta sintetizada consta de los caracteres "__syn__" seguidos del
representación hexadecimal de la suma MD5 de la línea de comando REM. Esto le permite dar un
identificador más o menos único para cada comando REM distinto.
El sistema DURACIÓN la palabra clave solo tiene sentido para recordatorios cronometrados; especifica la duración de un
evento. Actualmente, esto no se usa, pero puede ser usado en el futuro por back-ends o
sistemas de programación construidos alrededor Remind. Por ejemplo, si tiene una reunión de 90 minutos
a partir de la 1:00 p. m., puede usar:
REM 5 de marzo de 1999 A LAS 13:00 DURACIÓN 1:30 Reunión de MSG
Tenga en cuenta que duración se especifica en horas y minutos.
EL SUSTITUCIÓN FILTRO
Antes de ser procesado, el cuerpo de un REM El comando se pasa a través de un filtro de sustitución.
El filtro busca secuencias "%x" (donde "x" es cualquier letra y algunos otros caracteres)
y realiza sustituciones como se muestra a continuación. (Todas las fechas se refieren a la fecha de activación de la
recordatorio.)
%a se sustituye por "en día laborable, day mes, year"
Por ejemplo, considere el recordatorio:
REM 18 oct 1990 +4 MSG Reunión con Bob %a.
El 16 de octubre de 1990, imprimiría "Reunión con Bob el jueves 18 de octubre de
1990 ".
El 17 de octubre de 1990, imprimiría "Reunión con Bob mañana".
El 18 de octubre de 1990, imprimiría "Reunión con Bob hoy".
%b se sustituye por "en diff hora del día" donde diff son los real número de días
entre la fecha actual y la fecha de activación. (OMITIR no tienen ningún efecto.)
Por ejemplo, considere:
REM 18 oct 1990 +4 MSG Reunión con Bob %b.
El 16 de octubre de 1990, imprimiría "Reunión con Bob dentro de 2 días".
El 17 de octubre de 1990, imprimiría "Reunión con Bob mañana".
El 18 de octubre de 1990, imprimiría "Reunión con Bob hoy".
%c se sustituye por "en día laborable"
Ejemplo: REM 18 de octubre de 1990 +4 MSG Reunión con Bob %c.
El 16 de octubre de 1990, imprimiría "Reunión con Bob el jueves".
El 17 de octubre de 1990, imprimiría "Reunión con Bob mañana".
El 18 de octubre de 1990, imprimiría "Reunión con Bob hoy".
%d se reemplaza con "day", el día del mes.
%e se sustituye por "en dd-mm-aaaa"
%f se sustituye por "en mm-dd-aaaa"
%g se sustituye por "en día laborable, day mes"
%h se sustituye por "en dd-mm"
%i se sustituye por "en mm-dd"
%j se sustituye por "en día laborable, mes día-th, year" Esta forma añade los caracteres
"st", "nd", "rd" o "th" al día del mes, según corresponda.
%k se sustituye por "en día laborable, mes día-th"
%l se sustituye por "en aaaa-mm-dd"
%m se reemplaza con "mes", el nombre del mes.
%n se reemplaza con el número (1 a 12) del mes.
%o se reemplaza con "(hoy)" si y solo si la fecha actual del sistema es la misma que
la fecha utilizada por Remind como la fecha actual. Recuerde que puede especificar un
fecha para Remind para usar en la línea de comandos. Esta sustitución no es generalmente
útil en un REM comando, pero es útil en un BANNER mando. (Ver "El BANDERA
Mando.")
%p se reemplaza con "s" si el diff entre la fecha actual y la fecha de activación es
no 1. Puede usar esto para crear recordatorios como:
REM 1 de enero +4 MSG %x día%p antes de Año Nuevo.
%q se reemplaza con "'s" si el diff entre la fecha de activación y la fecha actual es
1. De lo contrario, se reemplaza con "s'" Esto se puede usar de la siguiente manera:
REM 1 ene +4 MSG ¡Año nuevo en %x día%q tiempo!
%r se reemplaza con el día del mes (01 a 31) rellenado con un cero inicial si
necesario para rellenar a dos dígitos.
%s se reemplaza con "st", "nd", "rd" o "th" según el día del mes.
%t se reemplaza con el número del mes (01 a 12) rellenado a dos dígitos con un
cero inicial.
%u se sustituye por "en día laborable, día-th mes, year"Esto es parecido a %a excepto
que se añade "st", "nd", "rd" o "th" a la day según sea apropiado.
%v se sustituye por "en día laborable, día-th mes"
%w se reemplaza con "día laborable", el nombre del día de la semana.
%x se reemplaza con el diff entre la fecha actual y la fecha de activación. El diff
se define como el número real de días entre estas dos fechas; OMITIR no son
contado (Se realiza una resta de fecha estricta.)
%y se reemplaza con "year", el año de la fecha de activación.
%z se reemplaza con "yy", los dos últimos dígitos del año.
%_ (porcentaje-guión bajo) se reemplaza con una nueva línea. Puedes usar esto para lograr
recordatorios de varias líneas.
%1 se reemplaza con "ahora", "m minutos a partir de ahora", "m hace minutos", "h horas a partir de ahora",
"h horas atras", "h horas y m minutos a partir de ahora" o "h horas y m minutos atrás", como
apropiado para un recordatorio cronometrado. Tenga en cuenta que, a menos que especifique el -a opción,
los recordatorios cronometrados se activarán como recordatorios normales y, por lo tanto, un recordatorio cronometrado
que ocurrió más temprano en el día puede activarse. Esto provoca la necesidad de la
Formas "...hace".
%2 se sustituye por "en hh:mmam" o "..pm" dependiendo de la AT hora del recordatorio.
%3 se sustituye por "en hh:mm" en formato de 24 horas.
%4 se reemplaza con "mm" dónde mm es el número de minutos entre "ahora" y la hora
especificado por AT. Si el AT la hora es anterior a la hora actual, entonces el resultado
es negativo
%5 se reemplaza con "ma" dónde ma es el valor absoluto del número producido por %4.
%6 se sustituye por "hace" o "a partir de ahora", dependiendo de la relación entre el AT
hora y la hora actual.
%7 se sustituye por el número de horas entre la AT hora y la hora actual. Eso
siempre es no negativo.
%8 se reemplaza con el número de minutos entre la AT la hora y la hora actual,
después de las horas (%7) se han sustraído. Este es un número que va de 0 a
59.
%9 se reemplaza con "s" si el valor producido por %8 no es 1.
%0 se reemplaza con "s" si el valor producido por %7 no es 1.
%! se reemplaza con "es" si la hora actual es anterior a la AT tiempo, o "fue" si es
después.
%@ es parecido a %2 pero muestra la hora actual.
%# es parecido a %3 pero muestra la hora actual.
%" (porcentaje-comillas dobles - ") se elimina. Esta secuencia no es utilizada por el
filtro de sustitución, pero se usa para decir Remind qué texto incluir en un calendario
entrada cuando el -c, -s or -p se elige la opción. Ver "Modo Calendario"
Notas:
o Remind normalmente imprime una línea en blanco después de cada recordatorio; si el último carácter de
el cuerpo es "%", la línea en blanco no se imprimirá.
o Las sustituciones a, b, c, e, f, g, h, i, j, k, l, u y v se reemplazan por
"hoy" si la fecha actual es igual a la fecha de activación, o "mañana" si la fecha de activación
fecha es un día después de la fecha actual. Por lo tanto, son no lo mismo que
sustituciones construidas a partir de las secuencias más simples %w, %y, etc.
o Cualquiera de las sustituciones relacionadas con el tiempo (0 a 9 y '!') produce indefinido
resultados si se utiliza en un recordatorio que no tiene un AT palabra clave. Además, si un
recordatorio tiene un delta y puede activarse en varios días, las sustituciones de tiempo
ignorar la fecha. Por lo tanto, la %1 sustitución puede informar que una reunión es en 15
minutos, por ejemplo, a pesar de que sólo puede ser en 2 días, porque un delta
ha activado el recordatorio. Se recomienda que utilice las sustituciones de tiempo
solo en recordatorios cronometrados sin delta que están diseñados para ser puestos en cola por tiempo
activación.
o Se pueden usar letras mayúsculas en la secuencia de sustitución, en cuyo caso la primera
el carácter de la cadena sustituida está en mayúscula (si normalmente es una minúscula
carta.)
o Todos los demás caracteres que siguen al signo "%" simplemente se copian. En particular, para conseguir
un "%" cierra la sesión, usa "%%" en el cuerpo. Para comenzar el cuerpo de un recordatorio con un
espacio, utilice "%", ya que Remind normalmente busca el primer carácter que no sea un espacio
después de GMS, CAL or CORRE simbólico.
EL OMITIR COMANDO
Además de ser una palabra clave en el REM mando, OMITIR es un comando por derecho propio.
Su sintaxis es:
OMITIR day mes [year]
o bien:
OMITIR day1 mes1 year1 MEDIANTE day2 mes2 year2
El sistema OMITIR El comando se usa para omitir "globalmente" ciertos días (generalmente días festivos). Estos
Los días omitidos globalmente se omiten con las formas "-" y "+" de back y delta. Algunos
ejemplos:
OMITIR 1 de enero
OMITIR 7 de septiembre de 1992
El primer ejemplo especifica un día festivo que ocurre en la misma fecha cada año: Año Nuevo
Día. El segundo ejemplo especifica un feriado que cambia cada año: Día del Trabajo. Para
este tipo de vacaciones, debe crear un OMITIR comando para cada año. (Más tarde, en el
descripción de expresiones y algunas de las características más avanzadas de Remind, ya verás
cómo automatizar esto para algunos casos).
Al igual que con el comando REM, puede usar especificadores abreviados para las fechas; los siguientes son
equivalente:
OMITIR 7 de septiembre de 1992
OMITIR 1992-09-07
Para mayor comodidad, puede utilizar un delta y MSG or CORRE palabra clave en el OMITIR mando. los
siguientes secuencias son equivalentes:
OMITIR 1 de enero
REM 1 ene +4 MSG ¡El día de año nuevo es %b!
y
OMITIR 1 de enero +4 MSG ¡El día de año nuevo es %b!
El sistema MEDIANTE La palabra clave le permite OMITIR convenientemente un rango de días. El comienzo y el final
los puntos deben estar completamente especificados (es decir, deben incluir el día, el mes y el año). Por ejemplo,
las siguientes secuencias son equivalentes:
OMITIR 3 de enero de 2011
OMITIR 4 de enero de 2011
OMITIR 5 de enero de 2011
y
OMITIR 3 de enero de 2011 HASTA 5 de enero de 2011
Puedes hacer un ATRAVÉS OMITIR cumplir una doble función como REM mando:
OMITIR 6 de septiembre de 2010 HASTA 10 de septiembre de 2010 MSG Vacaciones
Puede depurar sus OMIT globales con el siguiente comando:
OMITIR VOLCAR
El comando OMIT DUMP imprime las omisiones globales actuales en la salida estándar.
EL ANTES DE, DESPUÉS DE Y OMITIR PALABRAS CLAVE
Normalmente, los días que se omiten, ya sea por un global OMITIR comando o el local OMITIR or
OMITIRFUNC palabras clave en un REM declaración, solo afectan el conteo de los -back o el +delta.
Por ejemplo, suponga que tiene una reunión todos los miércoles. Supongamos también que usted tiene
indicado el 11 de noviembre como feriado:
OMITIR 11 de noviembre +4 Día de conmemoración de MSG
REM Mié +1 Código MSG reunión %b.
La secuencia anterior emitirá un recordatorio sobre una reunión para el 11 de noviembre de 1992, que es un
Miércoles. Esto es probablemente incorrecto. Hay tres opciones:
ANTES Esta palabra clave mueve el recordatorio antes de cualquier día omitido. Así, en lo anterior
ejemplo, uso de ANTES haría que el recordatorio de la reunión se activara el martes,
10 November 1992.
DESPUÉS DE Esta palabra clave mueve el recordatorio después de cualquier día omitido. En el ejemplo anterior,
el recordatorio de la reunión se activaría el jueves 12 de noviembre de 1992.
OMITIR Esta palabra clave hace que el recordatorio se omita por completo en los días omitidos.
Por lo tanto, en el ejemplo anterior, el recordatorio no se activaría el 11 de noviembre.
1992. Sin embargo, se activaría como de costumbre el miércoles siguiente, 18
1992 noviembre.
El sistema ANTES y DESPUÉS DE las palabras clave mueven la fecha de activación de un recordatorio antes o después de un
bloque de días omitidos, respectivamente. Suponga que normalmente ejecuta una copia de seguridad el primer día
Del mes. Sin embargo, si el primer día del mes es fin de semana o feriado, ejecuta el
copia de seguridad el primer día laborable siguiente al fin de semana o festivo. Podrías usar:
REM 1 OMITIR Sáb Dom DESPUÉS DE EJECUTAR do_backup
Examinemos cómo se calcula la fecha de activación. El 1 especifica el primer día de la
mes. El local OMITIR palabra clave causa la DESPUÉS DE palabra clave para mover el recordatorio hacia adelante
fines de semana Finalmente, el DESPUÉS DE la palabra clave seguirá moviendo el recordatorio hacia adelante hasta que haya
pasó los días festivos especificados con global OMITIR comandos.
EL INCLUIR COMANDO
Remind le permite incluir otros archivos en su script de recordatorio, similar a la C
directiva preprocesador #include. Por ejemplo, el administrador de su sistema puede mantener un
archivo de vacaciones o recordatorios de todo el sistema. Puede incluirlos en su script de recordatorio
como sigue:
INCLUYE /usr/share/remind/vacaciones
INCLUYE /usr/share/remind/recordatorios
(Los nombres de ruta reales varían de un sistema a otro; pregunte al administrador del sistema).
INCLUIR los archivos se pueden anidar hasta una profundidad de 8.
Si especifica un nombre de archivo de "-" en el INCLUIR mando, Remind comenzará a leer desde
entrada estándar.
Si especifica un directorio como el argumento para INCLUIR, entonces Remind procesará todos los archivos
en ese directorio que coincidan con el patrón de shell "*.rem". Los archivos se procesan en orden
pedido; el orden de clasificación coincide con el utilizado por el shell cuando se expande "*.rem".
EL CORRE COMANDO
Si incluye otros archivos en su script de recordatorio, es posible que no siempre confíe completamente en el
contenido de los otros archivos. Por ejemplo, pueden contener CORRE -escribe recordatorios que podrían
utilizarse para acceder a sus archivos o realizar acciones no deseadas. El CORRE el comando puede restringir
esto: si incluyes el comando CORRE OFF en su script de recordatorio de nivel superior, cualquier recordatorio
o la expresión que normalmente ejecutaría un comando del sistema está deshabilitada. CORRE ON se volverá a
habilitar la ejecución de comandos del sistema. Tenga en cuenta que el CORRE ON comando puede only ser utilizado en
su script de recordatorio de nivel superior; va a no trabajar en cualquier archivo accedido por el INCLUIR
mando. Esto es para protegerlo de que alguien coloque un CORRE ON comando en un incluido
expediente. sin embargo, el CORRE OFF El comando se puede usar en el nivel superior o en un archivo incluido.
Si tu corres Remind con el -r opción de línea de comandos, CORRE -escribe recordatorios y el cáscara()
La función se desactivará, independientemente de cualquier CORRE comandos en el script de recordatorio.
Sin embargo, cualquier comando suministrado con el -k la opción aún se ejecutará.
Un uso del CORRE comando es proporcionar una interfaz segura entre Remind y la olmo
sistema de correo El olmo el sistema puede escanear automáticamente el correo entrante en busca de recordatorios o calendario
entradas y colóquelas en su archivo de calendario. Para utilizar esta función, debe configurar el
opción de nombre de archivo de calendario en olmo ser algo como "~/.recordatorios.en", no tu principal
archivo de recordatorio! Esto es para que cualquier CORRE ON los comandos que se le envían por correo nunca se pueden activar.
Entonces, puede usar el olmo escanear mensaje for calendario entradas comando para colocar recordatorios
precedido por "->" en .reminders.in. En su archivo principal .reminders, incluya lo siguiente
líneas:
EJECUTAR # Deshabilitar EJECUTAR
INCLUYE .recordatorios.en
EJECUTAR EN # Rehabilitar EJECUTAR
Además, Remind contiene algunas otras características de seguridad. No leerá un archivo que
es de escritura grupal o mundial. No se ejecutará set-uid. Si lee un archivo que no es de su propiedad,
deshabilitará RUN y la función shell(). Y si se ejecuta como raíz, solo leerá
archivos propiedad de raíz.
EL BANNER COMANDO
Cuándo Remind primero emite un recordatorio, imprime un mensaje como este:
Recordatorios para el viernes 30 de octubre de 1992 (hoy):
(La pancarta no se imprime si se utiliza alguna de las opciones de producción de calendario, o si el -k
se utiliza la opción.)
El sistema BANNER El comando le permite cambiar el formato. Debe aparecer antes de cualquier REM comandos.
El formato es:
BANNER formato
El sistema formato es similar a la cuerpo creando REM mando. Se pasa por la sustitución.
filtro, con un activador implícito de la fecha actual del sistema. Por lo tanto, el banner predeterminado es
equivalente a:
BANNER Recordatorios para %w, %d%s %m, %y%o:
Puede desactivar el banner por completo con BANNER%. O puede crear un banner personalizado:
BANNER Hola. Estos son tus recordatorios para %y-%t-%r:
CONTROLADOR EL OMITIR CONTEXTO
A veces, es necesario cambiar temporalmente el global OMITIR que están en vigor para un
pocos recordatorios. Tres comandos le permiten hacer esto:
EMPUJAR-OMITIR-CONTEXTO
Este comando guarda el global actual OMITIR en una pila interna.
BORRAR-OMITIR-CONTEXTO
Este comando borra todos los datos globales. OMITIR, comenzando con una "pizarra limpia".
POP-OMITIR-CONTEXTO
Este comando restaura el global OMITIR que fueron salvados por los más recientes EMPUJAR-
OMITIR-CONTEXTO.
Por ejemplo, suponga que tiene un bloque de recordatorios que requieren una clara OMITIR contexto, y
que también introducen global no deseado OMITIR que podría interferir con recordatorios posteriores.
Podrías usar el siguiente fragmento:
PUSH-OMIT-CONTEXT # Guarda el contexto actual
CLEAR-OMIT-CONTEXT # Limpiar la pizarra
# El bloque de recordatorios va aquí
POP-OMIT-CONTEXT # Restaurar el contexto de omisión guardado
EXPRESIONES
En ciertos contextos, que se describirán más adelante, Remind aceptará expresiones para su evaluación.
Remind Las expresiones se parecen a las expresiones C, pero operan en diferentes tipos de objetos.
DATOS TIPOS
Remind Las expresiones operan en cinco tipos de objetos:
INT El sistema INT tipo de datos consta de los enteros representables en una palabra de máquina. El
INT tipo de datos corresponde al tipo C "int".
CADENA El sistema CADENA tipo de datos consta de cadenas de caracteres. Es algo comparable
a una matriz de caracteres C, pero se parece más al tipo de cadena en BASIC.
Captura de El sistema Captura de tipo de datos consta de horas del día. El Captura de el tipo de datos es interno
almacenado como un número entero que representa el número de minutos desde la medianoche.
FECHA El sistema FECHA El tipo de datos consta de fechas (posteriores al 1 de enero de 1990). Internamente, FECHA
los objetos se almacenan como el número de días desde el 1 de enero de 1990.
Fecha y hora
El sistema Fecha y hora El tipo de datos consta de una fecha y una hora juntas. Internamente, Fecha y hora
objetos se almacenan como el número de minutos desde la medianoche del 1 de enero de 1990. Usted
puedo pensar en un Fecha y hora objeto como la combinación de FECHA y Captura de partes.
Constantes
Los siguientes ejemplos ilustran constantes en Remind expresiones:
INT constante
12, 36, -10, 0, 1209
CADENA constante
"Hola", "Esto es una prueba", "\n\gosd\w", ""
Tenga en cuenta que la cadena vacía está representada por "", y que las barras diagonales inversas en una cadena
están no interpretado especialmente, como en they are in C.
Captura de constante
12:33, 0:01, 14:15, 16:42, 12.16:13.00, 1.11:XNUMX, XNUMX:XNUMX
Tenga en cuenta que Captura de Las constantes se escriben en formato de 24 horas. Ya sea el período o dos puntos
se puede usar para separar los minutos de las horas. Sin embargo, Remind
tiempos de salida consistentes usando solo un carácter separador. (La salida
el carácter separador se elige en tiempo de compilación).
FECHA constante
FECHA constantes se expresan como 'yyyy/mm/dd' o 'yyyy-mm-dd', y las comillas simples
deben ser suministrado. Esto distingue las constantes de fecha de la división o resta
de números enteros. Ejemplos:
´1993/02/22', '1992-12-25', '1999/01/01'
Tenga en cuenta que FECHA los valores son impreso sin las comillas. Aunque '-' o '/'
se acepta como un separador de fecha en la entrada, cuando se imprimen las fechas, solo una será
usado. La elección de usar '-' o '/' se realiza en tiempo de compilación. Tenga en cuenta también
que versiones de Remind antes del 03.00.01 no admitía constantes de fecha. En esos
versiones, debe crear fechas usando el fecha() función. Además, las versiones anteriores a
03.00.02 no admitía el separador de fecha '-'.
Fecha y hora constante
Fecha y hora constantes se expresan de manera similar a FECHA constantes con la adición de
una parte "@HH:MM". Por ejemplo:
´2008-04-05@23:11', '1999/02/03@14:06', '2001-04-07@08:30'
Fecha y hora los valores se imprimen sin las comillas. Notas sobre la fecha y la hora
caracteres separadores de FECHA y Captura de Las constantes se aplican también a Fecha y hora constantes.
OPERADORES
Remind tiene los siguientes operadores. Los operadores en la misma línea tienen la misma precedencia,
mientras que los operadores de las líneas inferiores tienen menor precedencia que los de las líneas superiores. El
los operadores corresponden aproximadamente a los operadores C.
! - (negación lógica unaria y negación aritmética)
* /%
+ -
<<=>> =
==! =
&&
||
DESCRIPCIÓN OF OPERADORES
! negación lógica. Se puede aplicar a un INT escribe. Si el operando es distinto de cero,
devuelve cero. De lo contrario, devuelve 1.
- Menos unario. Se puede aplicar a un INT. Devuelve el negativo del operando.
* Multiplicación. Devuelve el producto de dos INTs.
/ División entera. Devuelve el cociente de dos INTs, descartando el resto.
% Módulo. Devuelve el resto al dividir uno INT por otra.
+ Tiene varios usos. Estos son:
INT + INT - devuelve la suma de dos INTs.
INT + Captura de or Captura de + INT - devuelve un Captura de obtenido al sumar INT minutos para el
mas originales Captura de.
INT + FECHA or FECHA + INT - devuelve un FECHA obtenido al sumar INT días para el
mas originales FECHA.
INT + Fecha y hora or Fecha y hora + INT - devuelve un Fecha y hora obtenido al sumar INT
minutos al original Fecha y hora.
CADENA + CADENA - devuelve un CADENA esa es la concatenación de los dos originales
CADENAs.
CADENA + nada ni nada + CADENA - convierte el no-CADENA argumento a un
CADENAy luego realiza la concatenación. Ver el obligar() función.
- Tiene varios usos. Estos son:
INT - INT - devuelve la diferencia de dos INTs.
FECHA - FECHA - devoluciones (como INT) la diferencia en días entre dos FECHAs.
Captura de - Captura de - devoluciones (como INT) la diferencia en minutos entre dos Captura des.
Fecha y hora - Fecha y hora - devoluciones (como INT) la diferencia en minutos entre dos
Fecha y horas.
FECHA - INT - devuelve un FECHA que sea INT días antes que el original FECHA.
Captura de - INT - devuelve un Captura de que sea INT minutos antes que el original Captura de.
Fecha y hora - INT - devuelve un Fecha y hora que sea INT minutos antes que el original
Fecha y hora.
<, <=, >, y >=
Estos son los operadores de comparación. Pueden tomar operandos de cualquier tipo, pero ambos
Los operandos deben ser del mismo tipo. Los operadores de comparación devuelven 1 si el
la comparación es verdadera, o 0 si es falsa. Tenga en cuenta que la comparación de cadenas está hecha
siguiendo el orden léxico de los caracteres en su sistema, y que las letras mayúsculas y minúsculas
minúscula están distinta para estos operadores.
==, != == comprueba la igualdad, devolviendo 1 si sus operandos son iguales y 0 si lo son
no. != pruebas de desigualdad.
Si los operandos no son del mismo tipo, == devuelve 0 y != devuelve 1. De nuevo,
las comparaciones de cadenas distinguen entre mayúsculas y minúsculas.
&& Este es el operador lógico AND. Ambos operandos deben ser del tipo INT. Lo
devuelve 1 si ambos operandos son distintos de cero y 0 en caso contrario.
|| Este es el operador lógico OR. Ambos operandos deben ser del tipo INT. Lo
devuelve 1 si alguno de los operandos es distinto de cero y 0 en caso contrario.
NOTAS
Los operadores de igual precedencia son always evaluado de izquierda a derecha, excepto donde
los paréntesis indican lo contrario. Esto es importante, porque el operador "+" mejorado es
no necesariamente asociativo. Por ejemplo:
1 + 2 + "cadena" + 3 + 4 produce "3cadena34"
1 + (2 + "cadena") + (3 + 4) produce "12cadena7"
12:59 + 1 + "prueba" produce "13:00 prueba"
12:59 + (1 + "prueba") produce "12:591prueba"
Los operadores lógicos son no llamados operadores de cortocircuito, como lo son en C. Ambos
los operandos siempre se evalúan. Así, una expresión como:
(f!=0) && (100/f <= 3)
causará un error si f es cero.
VARIABLES
Remind le permite asignar valores a las variables. El SET comando se utiliza de la siguiente manera:
SET var expr
var es el nombre de una variable. Debe comenzar con una letra o guión bajo, y consistir
sólo de letras, dígitos y guiones bajos. Solo los primeros 12 caracteres de un nombre de variable
son significativos. Los nombres de las variables son no distingue mayúsculas y minúsculas; así, "Afoo" y "afOo" son los
misma variable. Ejemplos:
CONFIGURAR un 10 + (9*8)
SET b "Esto es una prueba"
SET mydir getenv("INICIO")
ESTABLECER hora 12:15
FIJAR fecha hoy()
Tenga en cuenta que las variables en sí mismas no tienen tipo. Toman el tipo de lo que sea que almacene
en ellos.
Para eliminar una variable, utilice el UNSET mando:
UNSET var [var...]
Por ejemplo, para eliminar todas las variables declaradas anteriormente, utilice:
UNSET ab mydir hora fecha
LITE PARA TECHOS PLANOS VARIABLES
Además de las variables de usuario normales, Remind tiene varias "variables del sistema" que son
se utiliza para consultar o controlar el estado de funcionamiento de Remind. Las variables del sistema están disponibles
a partir de la versión 03.00.07 de Remind.
Todas las variables del sistema comienzan con un signo de dólar '$'. Se pueden utilizar en SET comandos y
expresiones al igual que las variables regulares. Todas las variables del sistema siempre tienen valores de un
tipo especificado. Además, algunas variables del sistema no pueden modificarse y no puede
crear nuevas variables del sistema. Las variables del sistema se pueden inicializar en la línea de comando con
de la forma más -i opción, pero es posible que deba citarlos para evitar que el shell interprete el
signo de dólar. Los nombres de las variables del sistema no distinguen entre mayúsculas y minúsculas.
Se definen las siguientes variables del sistema. Los marcados como "solo lectura" no se pueden cambiar
con el SET mando. Todas las variables del sistema contienen valores de tipo INT, a menos que de otro modo
especificado.
$calcularUTC
Si 1 (el valor predeterminado), entonces Remind utiliza funciones de biblioteca C para calcular el número de
minutos entre la hora local y la hora universal coordinada. Esto afecta astronómicamente
cálculos (amanecer() por ejemplo.) Si es 0, debe proporcionar el número de
minutos entre la hora local y la hora universal coordinada en el $MinutosDeUTC te
variable.
$ModoCal (solo lectura)
Si es distinto de cero, entonces el -c se proporcionó la opción en la línea de comando.
$ demonio (solo lectura)
Si el modo daemon -z fue invocado, contiene el número de minutos entre despertares.
Si no se ejecuta en modo daemon, contiene 0.
$FechaSeptiembre
Esta variable solo se puede establecer en "/" o "-". Mantiene el carácter que solía
porciones separadas de una fecha cuando Remind imprime un valor DATE o DATETIME.
$PredeterminadoPrio
La prioridad predeterminada asignada a los recordatorios sin un PRIORIDAD cláusula. Puedes configurar
esto como requerido para ajustar las prioridades de los bloques de recordatorios sin tener que
escriba prioridades para recordatorios individuales. Al inicio, $PredeterminadoPrio se establece en 5000;
puede variar de 0 a 9999.
$NoTenedor (solo lectura)
Si es distinto de cero, entonces el -c se proporcionó la opción en la línea de comando.
$DontTrigAts (solo lectura)
El número de veces que el -a se proporcionó la opción en la línea de comando.
$NoHacerCola (solo lectura)
Si es distinto de cero, entonces el -q se proporcionó la opción en la línea de comando.
$FinEnviado (CUERDA tipo)
Contiene una lista de caracteres que terminan una oración. El MSF la palabra clave inserta dos
espacios después de estos caracteres. Inicialmente, $FinEnviado se establece en ".!?" (período,
signo de exclamación y signo de interrogación).
$FinEnviadoIg (CUERDA tipo)
Contiene una lista de caracteres que deben ignorarse cuando MSF decide si o
no colocar dos espacios después de una oración. Inicialmente, se establece en "'>)]}"+CHAR(34)
(comilla simple, mayor que, paréntesis derecho, corchete derecho, llave derecha y
comillas dobles.)
Por ejemplo, los valores predeterminados funcionan de la siguiente manera:
MSF dijo: "¡Eh! (Dos espacios seguirán a esto.)" Sí.
porque el paréntesis final y la comilla se ignoran (a efectos de espaciado)
cuando siguen un período.
$primera sangría
El número de espacios por los cuales sangrar la primera línea de un MSF-escriba recordatorio. El
el predeterminado es 0.
$FoldAño
Las funciones estándar de la biblioteca de Unix pueden tener dificultades para manejar las fechas más adelante
que 2037. Si esta variable se establece en 1, entonces los cálculos UTC "retroceden"
años después de 2037 antes de usar las funciones de la biblioteca de Unix. por ejemplo, a
averiguar si el horario de verano está vigente en junio de 2077, el año
se "retrocede" hasta 2010, porque ambos años comienzan un lunes y ambos no son
años bisiestos. Por lo tanto, se supone que las reglas para el horario de verano son idénticas
para ambos años, y las funciones de la biblioteca de Unix pueden manejar 2010. De forma predeterminada, este
variable es 0. Ajústelo a 1 si el sol o las funciones UTC se comportan mal durante años más
que 2037.
$ ancho de formulario
El ancho máximo de cada línea de texto para formatear MSF-escribe recordatorios. El
predeterminado es 72. Si un MSF-escribir recordatorio contiene una palabra demasiado larga para caber en este
ancho, no será truncado - el límite de ancho será ignorado.
$modo silencio (solo lectura)
Si es distinto de cero, entonces el -h se proporcionó la opción en la línea de comando.
$IgnorarOnce (solo lectura)
Si es distinto de cero, entonces el -o se proporcionó la opción en la línea de comando, o una fecha
diferente de la fecha verdadera de hoy. Si es distinto de cero, entonces UNA VEZ directivas
será ignorado
$InfDelta (solo lectura)
Si es distinto de cero, entonces el -t se proporcionó la opción en la línea de comando.
$LatDeg, $LatMin, $LatSec
Estos especifican la latitud de su ubicación. $LatDeg puede oscilar entre -90 y 90, y
los otros de -59 a 59. Las latitudes del norte son positivas; los del sur son
negativo. Para las latitudes del sur, los tres componentes deberían ser negativos.
$Ubicación (CUERDA tipo)
Esta es una cadena que especifica el nombre de su ubicación. Suele ser el nombre de
tu pueblo o ciudad. Se puede configurar como quieras, pero un buen estilo indica
que debe mantenerse consistente con las variables del sistema de latitud y longitud.
$GradoLargo, $LargoMin, $SegLargo
Estos especifican la longitud de su ubicación. $GradoLargo puede oscilar entre -180 y 180.
Las longitudes occidentales son positivas; los orientales son negativos. Tenga en cuenta que los tres
componentes deben tener el mismo signo: todos positivos para longitudes occidentales y todos
negativo para longitudes Este.
La información de latitud y longitud es necesaria para las funciones amanecer() y
atardecer(). Los valores predeterminados se pueden compilar en Remind, O puede SET lo correcto
valores al comienzo de sus scripts de recordatorio.
$MaxSatIter
El número máximo de iteraciones para el SATISFACER cláusula (descrita más adelante). Debe ser
al menos 10.
$MinutosDeUTC
El número de minutos entre la hora universal coordinada y la hora local. Si
$calcularUTC es distinto de cero, esto se calcula al iniciarse Remind. De lo contrario, usted
debe establecerlo explícitamente. Si $calcularUTC es cero, entonces $MinutosDeUTC se usa en el
cálculos astronómicos. Debe ajustarlo para el horario de verano usted mismo.
Además, si desea inicializar $MinutosDeUTC usando el -i opción de línea de comandos, usted
también debe establecer $calcularUTC a 0 con el -i .
$ModoSiguiente (solo lectura)
Si es distinto de cero, entonces el -n se proporcionó la opción en la línea de comando.
$Núm.en cola (solo lectura)
Contiene el número de recordatorios en cola hasta el momento para la activación temporizada en segundo plano.
$NumTrig (solo lectura)
Contiene el número de recordatorios activados para la fecha actual. Un uso para esto
variable es la siguiente: Suponga que desea sombrear el cuadro de un PostScript
calendario cada vez que se activa un día festivo. Podrías ahorrar el valor de $NumTrig in
una variable regular antes de ejecutar un bloque de recordatorios de vacaciones. si el valor
of $NumTrig después de que el bloque de vacaciones sea mayor que el valor guardado, entonces al menos
se activó un día festivo, y puede ejecutar el comando para sombrear en el calendario
caja. (Consulte la sección "Modo calendario".)
Tenga en cuenta que $NumTrig Es afectado only by REM comandos; dispara en IFTRIG los comandos hacen
no afectarlo.
$PrefixLineNo (solo lectura)
Si es distinto de cero, entonces el -l se proporcionó la opción en la línea de comando.
$PSCal (solo lectura)
Si es distinto de cero, entonces el -p se proporcionó la opción en la línea de comando.
$ escorrentía (solo lectura)
Si es distinto de cero, el CORRE Las directivas están deshabilitadas.
$Cal simple (solo lectura)
Establézcalo en un valor distinto de cero si ya sea de las -p or -s opciones de línea de comandos era
suministrado.
$OrdenarPorFecha (solo lectura)
Establecer en 0 si no -g se utiliza la opción 1 si ordena por fecha en orden ascendente, o 2 si
ordenar por fecha en orden descendente.
$OrdenarPorPrio (solo lectura)
Establecer en 0 si no -g se utiliza la opción 1 si se ordena por prioridad en orden ascendente, o 2
si ordena por prioridad en orden descendente.
$OrdenarPorTiempo (solo lectura)
Establecer en 0 si no -g se utiliza la opción 1 si ordena por tiempo en orden ascendente, o 2 si
ordenar por tiempo en orden descendente.
$SubsIndent
El número de espacios por los cuales todas las líneas (excepto la primera) de un MSF-escribe recordatorio
debe estar sangrado. El valor predeterminado es 0.
$T (solo lectura, FECHA tipo)
Exactamente equivalente a fecha triggada(). (Consulte FUNCIONES INTEGRADAS).
$Td (solo lectura)
Equivalente a día(trigdate()).
$Tm (solo lectura)
Equivalente a monnum(trigdate()).
$ Dos (solo lectura)
Equivalente a númdíasem(trigdate()).
$ Ty (solo lectura)
Equivalente a año(trigdate()).
$HoraSep
Esta variable solo se puede establecer en ":" o ".". Mantiene el carácter que solía
porciones separadas de un tiempo cuando Remind imprime un valor TIME o DATETIME.
$ sin tiempo primero (solo lectura)
Establézcalo en 1 si el -g la opción se usa con un cuarto carácter de clasificación de "d"; establecer en 0
de otra manera.
$U (solo lectura, FECHA tipo)
Exactamente equivalente a hoy dia(). (Consulte FUNCIONES INTEGRADAS).
$ud (solo lectura)
Equivalente a día a día()).
$um (solo lectura)
Equivalente a monnum(hoy()).
$Uw (solo lectura)
Equivalente a númdíasemana(hoy()).
$Uy (solo lectura)
Equivalente a año a día()).
Nota: si alguno de los modos de calendario está activo, los valores de $Daemon, $DontFork,
$DontTrigAts, $DontQueue, $HushMode, $IgnoreOnce, $InfDelta y $NextMode no son
significativo.
INCORPORADO Las funciones
Remind tiene una plétora de funciones integradas. La sintaxis para una llamada de función es la misma
como en C - el nombre de la función, seguido de una lista de argumentos separados por comas entre paréntesis.
Los nombres de las funciones no distinguen entre mayúsculas y minúsculas. Si una función no toma argumentos, debe ser
seguido de "()" en la llamada de función. De lo contrario, Remind lo interpretará como una variable
y probablemente no funcione correctamente.
En las descripciones a continuación, se utilizan formas abreviadas para indicar tipos aceptables para el
argumentos Los caracteres "i", "s", "d", "t" y "q" denotan INT, CADENA, FECHA, Captura de y
Fecha y hora argumentos, respectivamente. Si un argumento puede ser de varios tipos, el
los caracteres se concatenan. Por ejemplo, "di_arg" denota un argumento que puede ser un FECHA
o un INT. "x_arg" denota un argumento que puede ser de cualquier tipo. El tipo de argumento
va seguido de un guión bajo y un identificador que nombra el argumento.
Las funciones integradas son:
abs(i_núm)
Devuelve el valor absoluto de número.
acceso(s_file, si_modo)
Prueba los permisos de acceso para el archivo presentar. Moda puede ser una cadena, que contiene un
combinación de los caracteres "rwx" para pruebas de permisos de lectura, escritura y ejecución.
Alternativamente, modo puede ser un número como se describe en UNIX de la máquina(2) llamada al sistema.
La función devuelve 0 si se puede acceder al archivo con el especificado modo, y 1
de otra manera.
argumentos(s_fname)
Devuelve el número de argumentos esperados por la función definida por el usuario fnombre, o -1
si no existe tal función definida por el usuario. Tenga en cuenta que esta función examina sólo
funciones definidas por el usuario, no funciones integradas. Su uso principal es para determinar
si una determinada función definida por el usuario se ha definido previamente o no. El
args () La función solo está disponible en las versiones de Remind del 03.00.04 en adelante.
asc(s_cadena)
Devuelve un INT ese es el código ASCII del primer carácter en cadena. Como
caso especial, asc("") devuelve 0.
baseyr()
Devuelve el "año base" en el que se compiló Remind (normalmente 1990.) Todas las fechas
se almacenan internamente como el número de días desde el 1 de enero de baseyr().
char(i_i1 [,i_i2...])
Esta función puede tomar cualquier número de INT argumentos devuelve un CADENA que consiste
de los caracteres especificados por los argumentos. Tenga en cuenta que ninguno de los argumentos puede
ser 0, a menos que haya un solo argumento. Como caso especial, tanque(0) devoluciones "".
Tenga en cuenta que porque Remind no admite el escape de caracteres en cadenas, el
La única forma de obtener una comilla doble en una cadena es usar tanque(34).
elegir(i_index, x_arg1 [,x_arg2...])
Elija debe tomar al menos dos argumentos, el primero de los cuales es un INT. Si índice is
n, Entonces el nSe devuelve el argumento subsiguiente. Si índice es menor que 1, entonces
arg1 es regresado. Si índice es mayor que el número de argumentos subsiguientes,
luego se devuelve el último argumento. Ejemplos:
elegir (0, "fu", 1: 13, 1000). devuelve "foo"
elegir (1, "fu", 1: 13, 1000). devuelve "foo"
elegir (2, "fu", 1: 13, 1000). devuelve 1:13
elegir (3, "fu", 1: 13, 1000). devuelve 1000
elegir (4, "fu", 1: 13, 1000). devuelve 1000
Tenga en cuenta que todos los argumentos para escoger() están always evaluado.
coaccionar(s_type, x_arg)
Esta función convierte arg a la especificada tipo, si tal conversión es posible.
Type debe ser uno de "INT", "STRING", "DATE", "TIME" o "DATETIME" (caso-
insensible). Las reglas de conversión son las siguientes:
If arg ya es del tipo especificado, se devuelve sin cambios.
If tipo es "CADENA", entonces arg se convierte en una cadena que consiste en su impreso
representación.
If tipo es "FECHA", entonces un INT arg se convierte interpretándolo como el número de
días desde el 1 de enero baseyr(). La CADENA arg se convierte al intentar leerlo
como si fuera una fecha impresa. A Fecha y hora se convierte en una fecha al soltar el
componente de tiempo. A Captura de arg no se puede convertir a una fecha.
If tipo es "TIEMPO", entonces un INT arg se convierte interpretándolo como el número de
minutos desde la medianoche. A CADENA arg se convierte al intentar leerlo como si
fuera un tiempo impreso. A Fecha y hora se convierte en una hora eliminando la fecha
componente. A FECHA arg no se puede convertir a una hora.
If tipo es "DATETIME", entonces un INT arg se convierte al interpretarlo como el
número de minutos desde la medianoche del 1 de enero baseyr(). La CADENA es convertido por
intentando leerlo como si fuera una fecha y hora impresa. Otros tipos no pueden ser
convertido a una fecha y hora.
If tipo es "INT", entonces FECHA, Captura de y Fecha y hora Los argumentos se convierten usando el
al revés de los procedimientos descritos anteriormente. A CADENA arg se convierte analizándolo como
un entero.
Actual()
Devuelve la fecha y la hora actuales como un objeto DATETIME. Este puede ser el real
fecha y hora, o puede ser la fecha y la hora proporcionadas en la línea de comandos.
fecha(i_y, estoy, identificación)
El sistema fecha() la función devuelve un FECHA objeto con los componentes año, mes y día
especificado por y, m y d.
fechaparte(dq_fechahora)
Devuelve un FECHA objeto que representa la porción de fecha de datetime.
fecha y hora (argumentos)
El sistema fecha y hora() La función puede tomar de dos a cinco argumentos. siempre
devuelve un DATETIME generado a partir de sus argumentos.
Si proporciona dos argumentos, el primero debe ser una FECHA y el segundo una HORA.
Si proporciona tres argumentos, el primero debe ser una FECHA y el segundo y el tercero
deben ser INT. Los argumentos segundo y tercero se interpretan como horas y minutos.
y convertida a una HORA.
Si proporciona cuatro argumentos, los primeros tres deben ser INT, interpretados como el
año, mes y día. El cuarto argumento debe ser un TIEMPO.
Finalmente, si proporciona cinco argumentos, todos deben ser INT y se interpretan como
año, mes, día, hora y minuto.
amanecer([dq_date])
Devuelve la hora del "amanecer civil" en el especificado datos. Si datos se omite,
por defecto es hoy dia(). Si un datetime se proporciona el objeto, solo se proporciona el componente de fecha
usado.
día(fecha_dq)
Esta función toma un FECHA or Fecha y hora como un argumento, y devuelve un INT que sea
el componente de día del mes de datos.
daysinmon(yo_m, yo_y)
Devuelve el número de días del mes. m (1-12) del año y.
definido(s_var)
Devuelve 1 si la variable nombrada por var está definido, o 0 si no lo está.
Tenga en cuenta que definido () toma una CADENA argumento; por lo tanto, para comprobar si la variable X es
definido, utilice:
definido ("X")
y no:
definido(X)
El segundo ejemplo intentará evaluar X y devolverá un error si es
indefinido o no de tipo CADENA.
dosust(s_str [,d_fecha [,t_hora]]) or dosust(s_str [,q_fechahora])
Devuelve un CADENA ese es el resultado de pasar str a través del filtro de sustitución
descrito anteriormente. Los parametros datos y time (o datetime) establecer la
Fecha y hora efectivas de activación utilizadas por el filtro de sustitución. Si datos y time
se omiten, por defecto son hoy dia() y ahora().
Tenga en cuenta que si str no termina con "%", se agregará un carácter de nueva línea al
final del resultado. También, llamando dosust() y un toque datos que está en el pasado (es decir,
if datos < hoy dia()) producirá resultados indefinidos.
Dosust() sólo está disponible a partir de la versión 03.00.04 de Remind.
anochecer([dq_date])
Devuelve la hora del "crepúsculo civil" en el especificado datos. Si datos se omite,
por defecto es hoy dia().
fecha de Pascua (dqi_arg)
If arg es un INTy, a continuación, devuelve la fecha del domingo de Pascua del año especificado.
If arg es un FECHA or Fecha y hora, luego devuelve la fecha del próximo Domingo de Pascua en o
después de arg. (El componente de tiempo de una fecha y hora se ignora).
evaluar(s_trigger [,inicio_dq])
Evalúa detonante como si fuera una especificación de disparador REM o IFTRIG y devuelve
la fecha de activación como FECHA (o como Fecha y hora si hay un AT cláusula.) Devuelve un
negativas INT si no se puede calcular ningún disparador.
Normalmente, evaluar encuentra una fecha de activación a partir de hoy. Si usted proporciona el comienzo
argumento, luego escanea comenzando desde allí.
Por ejemplo, la expresión:
evaluar("Lun 1", '2008-10-07')
devuelve '2008-11-03', ya que es la primera fecha a partir del 7 de octubre de 2008 que
satisface "Lun 1".
Si desea ver cuántos días hay desde el primer lunes de octubre de 2008 hasta
el primer lunes de noviembre de 2008, utilice:
evaltrig("Lun 1", '2008-11-01') - evaltrig("Lun 1", '2008-10-01')
y la respuesta es 28. El argumento desencadenante para evaluar puede tener todo lo habitual
cláusulas desencadenantes (OMITIR, AT, OMITIR, etc) pero no puede tiene un SATISFACER, MSG, etc.
cláusula de tipo recordatorio.
fecha de archivo (s_nombre de archivo)
Devuelve la fecha de modificación de nombre de archivo. Si nombre de archivo no existe, o su
la fecha de modificación es anterior al año baseyr(), entonces el 1 de enero de baseyr() is
devuelto.
archivo fecha y hora (s_nombre de archivo)
Devuelve la fecha y hora de modificación de nombre de archivo. Si nombre de archivo no existe, o
su fecha de modificación es anterior al año baseyr(), luego la medianoche del 1 de enero de
baseyr() es regresado.
dirarchivo()
Devuelve el directorio que contiene el archivo actual que se está procesando. puede ser un
nombre de ruta relativo o absoluto, pero se garantiza que es correcto para su uso en un
INCLUIR comando de la siguiente manera:
INCLUYE [dirarchivo()]/cosas
Esto incluye el archivo "cosas" en el mismo directorio que el archivo actual que se está
procesado.
Nombre del archivo()
Devoluciones (como CADENA) el nombre del archivo actual que está siendo procesado por Remind.
Dentro de los archivos incluidos, devuelve el nombre del archivo incluido.
getenv(s_envvar)
Similar a la conseguir(2) llamada al sistema. Devuelve una cadena que representa el valor de
la variable de entorno especificada. Devuelve "" si la variable de entorno no es
definido. Tenga en cuenta que los nombres de las variables de entorno generalmente son mayúsculas y minúsculas.
sensitivo; por lo tanto, getenv("HOME") no es lo mismo que getenv("home").
hebdate(i_día, s_hebmon [,idq_yrstart [,i_jahr [,i_una bandera]]])
Compatibilidad con fechas hebreas: consulte la sección "El calendario hebreo"
hebday(dq_date)
Compatibilidad con fechas hebreas: consulte la sección "El calendario hebreo"
hebmon(fecha_dq)
Compatibilidad con fechas hebreas: consulte la sección "El calendario hebreo"
hebaño(dq_date)
Compatibilidad con fechas hebreas: consulte la sección "El calendario hebreo"
hora(tq_time)
Devuelve el componente de hora de time.
si(si_prueba1, x_arg1, [si_prueba2, x_arg2,...], x_predeterminado)
If test1 no es cero o la cadena nula, devuelve arg1. De lo contrario, si test2 no es
cero o la cadena nula, devuelve arg2, y así. si todos los test los argumentos son
falso, devuelve tu préstamo estudiantil. Tenga en cuenta que todos los argumentos son always evaluado. Esta
La función acepta un número impar de argumentos; tenga en cuenta que antes de la versión 03.00.05
of Remind, aceptó solo 3 argumentos. La versión de 3 argumentos de iif () is
compatible con versiones anteriores de Remind.
index(s_buscar, s_objetivo [,empiezo)
Devuelve un INT esa es la ubicación de dirigidos en la cuerda Buscar. La primera
carácter de una cadena se numera 1. Si dirigidos no existe en Buscar, entonces 0 es
devuelto.
El parámetro opcional comienzo especifica la posición en Buscar en el que empezar
buscando dirigidos.
isdst([d_fecha [,t_hora]]) or isdst(q_fechahora)
Devuelve un número positivo si el horario de verano está en vigor en el especificado
fecha y hora. Fecha por defecto es hoy dia() y time predeterminado a la medianoche.
Tenga en cuenta que esta función solo es tan confiable como las funciones de la biblioteca en tiempo de ejecución de C.
Está disponible a partir de la versión 03.00.07 de Remind.
salida de isla (idq_arg)
Devuelve 1 si arg es un año bisiesto, y 0 en caso contrario. Arg puede ser un INT, FECHA or
Fecha y hora objeto. Si un FECHA or Fecha y hora se suministra, entonces el componente de año es
utilizado en la prueba.
isomitido(dq_date)
Devuelve 1 si datos se omite, dado el actual global OMITIR contexto. Devuelve 0
de lo contrario. (Si se proporciona una fecha y hora, solo se usa la parte de la fecha). Tenga en cuenta que cualquier
local OMITIR or OMITIRFUNC las cláusulas son no tomado en cuenta por esta función.
idioma()
Devuelve un CADENA nombrando el lenguaje soportado por Remind. (Consulte "Lengua extranjera
Soporte.") De forma predeterminada, Remind está compilado para admitir mensajes en inglés, por lo que este
la función devuelve "Inglés". Para otros idiomas, esta función devolverá el
Nombre en inglés del idioma (p. ej., "alemán") Tenga en cuenta que idioma() no está disponible
en versiones de Remind antes de 03.00.02.
inferior (s_cadena)
Devuelve un CADENA con todos los caracteres en mayúsculas en cadena convertido a minúsculas.
máx(x_arg1 [,x_arg2...)
Puede tomar cualquier número de argumentos y devuelve el máximo. Los argumentos pueden ser de
cualquier tipo, pero todos deben ser del mismo tipo. Se comparan como con el >
operador.
mín(x_arg1 [,x_arg2...)
Puede tomar cualquier número de argumentos y devuelve el mínimo. Los argumentos pueden ser de
cualquier tipo, pero todos deben ser del mismo tipo. Se comparan como con el
operador.
minsfromutc([d_fecha [,t_hora]]) or minutos de utc(q_datetime)
Devuelve el número de minutos desde la hora universal coordinada (anteriormente GMT) hasta
hora local en la fecha y hora especificadas. Fecha por defecto es hoy dia() y time
predeterminado a la medianoche. Si la hora local es anterior a UTC, el resultado es negativo.
De lo contrario, el resultado es positivo.
Tenga en cuenta que esta función solo es tan confiable como las funciones de la biblioteca en tiempo de ejecución de C.
Está disponible a partir de la versión 03.00.07 de Remind.
minuto(tq_time)
Devuelve el componente de minutos de time.
lun(dqi_arg)
If arg es de FECHA or Fecha y hora tipo, devuelve una cadena que nombra el componente del mes
de la fecha Si arg es un INT del 1 al 12, devuelve una cadena que nombra el mes.
monnum(fecha_dq)
Devuelve un INT del 1 al 12, que representa el componente mensual de datos.
fecha lunar(i_fase [,d_fecha [,t_hora]]) or fecha lunar(i_fase, q_fechahora)
Esta función devuelve la fecha de la primera aparición de la fase. fase de las
luna en o después datos y time. Fase puede variar de 0 a 3, donde 0 significa nuevo
luna, 1 cuarto menguante, 2 luna llena y 3 cuarto menguante. Si datos se omite, es
por defecto es hoy dia(). Si time se omite, el valor predeterminado es medianoche.
Por ejemplo, lo siguiente devuelve la fecha de la próxima luna llena:
SET luna llena fecha lunar(2)
tiempo lunar(i_fase [,d_fecha [,t_hora]]) or tiempo lunar(i_fase, q_fechahora)
Esta función devuelve la hora de la primera aparición de la fase. fase de las
luna en o después datos y time. Fase puede variar de 0 a 3, donde 0 significa nuevo
luna, 1 cuarto menguante, 2 luna llena y 3 cuarto menguante. Si datos se omite, es
por defecto es hoy dia(). Si time se omite, el valor predeterminado es medianoche. tiempo de luna() is
destinado a ser utilizado junto con fecha lunar(). fecha lunar() y hora de la luna()
funciones tienen una precisión de un par de minutos de los tiempos en "Old Farmer's
Almanaque" de Ottawa, Ontario.
Por ejemplo, lo siguiente devuelve la fecha y la hora de la próxima luna llena:
MSG Próxima luna llena a las [hora de la luna(2)] el [fecha lunar(2)]
moondatetime(i_fase [,d_fecha [,t_hora]]) or fecha y hora de la luna (i_fase, q_fechahora)
Esta función es similar a fecha lunar y hora de la luna, pero devuelve un resultado DATETIME.
fase lunar([d_fecha [,t_hora]]) or fase lunar (q_datetime)
Esta función devuelve la fase de la luna en datos y time, que por defecto es
hoy dia() y medianoche, respectivamente. El valor devuelto es un número entero de 0 a
359, que representa la fase de la luna en grados. 0 es luna nueva, 180 es luna llena
luna, 90 es cuarto creciente, etc.
no omitido(dq_start, dq_end [,s_wkday...])
Esta función devuelve el número de no-días omitidos entre comienzo y final. Si
comienzo no se omite, entonces se cuenta. final nunca se cuenta.
Tenga en cuenta que final debe ser mayor o igual que comienzo o se informa de un error. En
Además de utilizar el contexto OMIT global, puede proporcionar argumentos adicionales que
son nombres de días de la semana que deben omitirse. Sin embargo, en un REM comando, cualquier local OMITIRFUNC
la cláusula es no tomado en cuenta por esta función.
Por ejemplo, la siguiente línea establece a en 11 (suponiendo que no haya OMIT globales):
establecer un noomitido ('2007-08-01', '2007-08-16', "Sábado", "Dom")
porque el jueves 16 de agosto de 2007 es el 11º día hábil (sin contar el sábado y el
domingo) después del miércoles 1 de agosto de 2007.
no omitido tiene varios usos. Por ejemplo, muchas escuelas funcionan en un ciclo de seis días y
el número de día no se incrementa en días festivos. Supongamos que el año escolar comienza con
Día 1 el 4 de septiembre de 2007. El siguiente recordatorio etiquetará los números de los días en un
calendario:
SI hoy() >= '2007-09-04'
establecer número de día no omitido ('2007-09-04', hoy (), "sábado", "domingo")
REM OMITIR SAB DOM SALTAR CAL Día [(daynum % 6) + 1]
Endif
Obviamente, la respuesta que obtienes de no omitido depende del contexto OMIT global.
Si usa OMIT móviles, puede obtener resultados inconsistentes.
Aquí hay un uso más complejo para no omitido. Mi recolección de basura sigue dos
ciclos intercalados de 14 días: un viernes, reciclaje de basura y papel ("Black Box")
se recogen. El próximo viernes, la basura y el reciclaje de plástico ("Blue Box") son
recogido. Si alguno de los días de lunes a viernes es festivo, la recogida se retrasa hasta el
Sábado. Aquí hay una manera de codificar estas reglas:
fset _garbhol(x) númdíasem(x) == 5 && no omitido(x-4, x+1) < 5
REM 12 de noviembre de 1999 *14 DESPUÉS DE OMITFUNC _garbhol MSG Black Box
REM 19 de noviembre de 1999 *14 DESPUÉS DE OMITFUNC _garbhol MSG Caja azul
Así es como funciona: la función definida por el usuario _garbhol(x) devuelve 1 si y solo
si (1) x es viernes y (2) hay al menos un día OMITIDO del anterior
Lunes hasta el viernes inclusive.
La primera declaración REM establece el ciclo de caja negra de 14 días. La palabra clave DESPUÉS
hace que se mueva la colección al sábado si _garbhol devuelve 1. El segundo REM
declaración establece el ciclo de caja azul de 14 días con un ajuste similar realizado por DESPUÉS
en conjunción con _garbhol.
ahora() Devuelve la hora actual del sistema, como Captura de escribe. Esta puede ser la hora real, o una
tiempo proporcionado en la línea de comando.
orden(i_num)
Devuelve una cadena que es el número ordinal número. Por ejemplo, palabras(2) devoluciones
"2do", y palabras(213) devuelve "213".
ostipo()
Devuelve "UNIX". Recordar solía ejecutarse en OS/2 y MS-DOS, pero ya no.
plural(i_num [,s_str1 [,s_str2]])
Puede tomar de uno a tres argumentos. Si se proporciona un argumento, devuelve "s" si
número no es 1, y "" si número es 1.
Si se proporcionan dos argumentos, devuelve str1 + "s" si número no es 1. De lo contrario,
devoluciones str1.
Si se proporcionan tres argumentos, devuelve str1 if número es 1, y str2 de otra manera.
psmoon(i_fase [,i_tamaño [,s_nota [,i_tamaño_nota]]])
[DEPRECATED] Devuelve un CADENA que consiste en código PostScript para dibujar una luna en el
esquina superior izquierda del cuadro del calendario. Fase especifica la fase de la luna,
y es 0 (luna nueva), 1 (primer cuarto), 2 (luna llena) o 3 (tercer cuarto). Si
tamaño se especifica, controla el radio de la luna en unidades PostScript (1/72
pulgadas.) Si no se especifica o es negativo, el tamaño de la fuente del número de día es
usado.
Por ejemplo, las siguientes cuatro líneas colocan símbolos de luna en el PostScript
calendario:
REM [fecha lunar(0)] PD [luna ps(0)]
REM [fecha lunar(1)] PD [luna ps(1)]
REM [fecha lunar(2)] PD [luna ps(2)]
REM [fecha lunar(3)] PD [luna ps(3)]
If nota se especifica, el texto se utiliza para anotar la visualización de la luna. la fuente es
la misma fuente utilizada para las entradas del calendario. Si tamaño de nota se da, se especifica el
tamaño de fuente a usar para la anotación, en unidades PostScript (1/72 pulg.) Si tamaño de nota
no se proporciona, por defecto es el tamaño utilizado para las entradas del calendario. (Si anotas
la pantalla, tenga cuidado de no sobrescribir el número del día -- Remind no comprueba
para esto.) Por ejemplo, si desea que se muestre la hora de cada luna nueva, puede
use esto en su script de recordatorio:
REM [fecha lunar(0)] PD [psmoon(0, -1, hora de la luna(0)+"")]
Observe cómo el tiempo se coacciona a una cadena mediante la concatenación de la cadena nula.
psshade(i_gris) or psshade(i_rojo, yo_verde, i_azul)
[DEPRECATED] Devuelve un CADENA que consta de comandos PostScript para sombrear un
cuadro de calendario. num puede variar de 0 (completamente negro) a 100 (completamente blanco).
Si se dan tres argumentos, especifican la intensidad de rojo, verde y azul de 0 a
100. Aquí hay un ejemplo de cómo usar esto:
REM Sáb Dom PD [sombra de ps(95)]
El comando anterior emite código PostScript para sombrear ligeramente los cuadros para el sábado y
Domingo en un calendario PostScript.
Tenga en cuenta que luna ps y sombra de ps están en desuso; en su lugar, debe utilizar el ESPECIAL
Recordatorios de SOMBRA y LUNA ESPECIAL como se describe en "Recordatorios fuera de banda".
corriente real()
Devuelve (como DATETIME) la fecha y la hora verdaderas del día proporcionadas por el operador
sistema. Esto es en contraste con Actual(), que puede devolver un tiempo proporcionado en el
línea de comando.
ahora mismo()
Devuelve la hora real del día proporcionada por el sistema operativo. Esto es en
contraste con ahora(), que puede devolver una hora proporcionada en la línea de comandos.
realhoy()
Devuelve la fecha proporcionada por el sistema operativo. Esto es en contraste con
Remindel concepto de "hoy", que se puede cambiar si se ejecuta en el calendario
modo, o si se ha proporcionado una fecha en la línea de comando.
signo(i_num)
Devuelve -1 si número es negativo, 1 si número es positivo y 0 si número Es cero.
cáscara(s_cmd [,i_maxlen])
Ejecuta cmd como un comando del sistema y devuelve los primeros 511 caracteres de salida
resultante de cmd. Cualquier carácter de espacio en blanco en la salida se convierte en un
espacio. Tenga en cuenta que si CORRE OFF ha sido ejecutado, o el -r la opción de línea de comandos tiene
ha sido usado, cáscara() dará como resultado un error, y cmd no se ejecutará.
If maxlen se especifica, entonces cáscara() devuelve el primero maxlen caracteres de salida
(en lugar de los primeros 511). Si maxlen se especifica como un número negativo, entonces all
la salida de cmd es regresado.
diapositiva(d_inicio, yo_soy [,s_wkday...])
Esta función es la inversa de no omitido. Agrega amt días (que puede ser
negativo) a comienzo, no contando omitido días. El opcional día laborable los argumentos son
nombres de días de la semana adicionales para omitir.
Considere este ejemplo:
OMITIR 14 de mayo de 2009
ESTABLECER una diapositiva ('2009-05-13', 5, "Sábado", "Dom")
En este caso, a se establece en 2009-05-21. Eso es porque avanzamos 5 días,
sin incluir el jueves 14 de mayo ni el sábado y domingo 16 y 17 de mayo. Puedes ir
también al revés, así que:
OMITIR 14 de mayo de 2009
CONFIGURAR una diapositiva ('2009-05-21', -5, "Sábado", "Dom")
toma a volver a 2009-05-13.
cadena(s_cadena)
Devuelve la longitud de str.
substr(s_str, empiezo [,i_fin])
Devuelve un CADENA compuesto por todos los caracteres de str obtenidos de comienzo hasta e incluyendo
final. Los caracteres se numeran a partir del 1. Si final no se suministra, entonces por defecto es
el largo de str.
amanecer([dq_date])
Devuelve un Captura de indicando la hora de la salida del sol en el especificado datos (defecto
hoy dia().) En latitudes altas, puede que no haya amanecer en un día en particular, en el cual
case amanecer() devuelve el INT 0 si el sol nunca se pone, o 1440 si nunca sale.
puesta de sol ([dq_date])
Devuelve un Captura de que indica la hora de la puesta del sol en el especificado datos (defecto
hoy dia().) En latitudes altas, puede que no haya puesta de sol en un día en particular, en el cual
case atardecer() devuelve el INT 0 si el sol nunca sale, o 1440 si nunca se pone.
Las funciones amanecer() y atardecer() se basan en un algoritmo en "Almanac for
Computadoras para el año 1978" por LE Doggett, Oficina de Almanaque Náutico, USNO. Ellos
requieren que se especifique la latitud y la longitud configurando el
variables del sistema. (Consulte "Variables del sistema".) Las funciones del sol deben ser precisas
dentro de unos 4 minutos para latitudes inferiores a 60 grados. las funciones son
disponible a partir de la versión 03.00.07 de Remind.
tiempo(i_hr, estoy dentro)
Crea un ambiente Captura de con los componentes de horas y minutos especificados por hr y min.
parte del tiempo (tq_datetime)
Devuelve un Captura de objeto que representa la porción de tiempo de datetime.
hoy dia()
Returns RemindLa noción de "hoy". Esta puede ser la fecha real del sistema o una fecha
proporcionada en la línea de comando, o la fecha de la entrada de calendario que se está
calculado.
fecha triggada()
Devuelve la fecha de activación calculada del último REM or IFTRIG mando. Si se usa en
de la forma más cuerpo creando REM comando, devuelve la fecha de activación de ese comando. si es el mas reciente
REM El comando no produjo una fecha de activación computable, devuelve el número entero 0.
horatrigdate()
Similar a trigdate(), pero devuelve un Fecha y hora si el activable más reciente REM
El comando tenía un AT cláusula. si no hubiera AT cláusula, devuelve un FECHA. Si no
se puede calcular el disparador, devuelve el número entero 0.
disparador(d_fecha [,t_hora [,i_utcbandera]]) or disparador(q_fechahora [,i_utcbandera])
Devuelve una cadena adecuada para su uso en un REM comando o una cláusula SCANFROM o UNTIL,
lo que le permite calcular las fechas de activación por adelantado. Tenga en cuenta que en versiones anteriores
of Remind, detonante era necesario para convertir una fecha en algo que la REM comando
podría consumir. Sin embargo, en esta versión de Remind, puede omitirlo. Tenga en cuenta que
desencadenar() always devuelve su resultado en inglés, incluso para versiones en idiomas extranjeros
of Remind. Esto es para evitar problemas con ciertas bibliotecas C que no manejan
caracteres acentuados correctamente. Normalmente, el datos y time son la fecha local y
hora; Sin embargo, si banderautc es distinto de cero, el datos y time se interpretan como UTC
y se convierten a la hora local. Ejemplos:
disparador('1993/04/01')
devuelve "1 de abril de 1993",
trigger('1994/08/09', 12:33)
devuelve "9 de agosto de 1994 a las 12:33", al igual que:
trigger('1994/08/09@12:33').
Por último:
trigger('1994/12/01', 03:00, 1)
devuelve "30 de noviembre de 1994 a las 22:00" para EST, que es 5 horas menos que UTC. El
el valor para su zona horaria puede diferir.
tiempo trigonométrico()
Devuelve la hora de la última REM comando con un AT cláusula. si el ultimo REM did
no tener un AT cláusula, devuelve el entero 0.
trigválido()
Devuelve 1 si el valor devuelto por fecha triggada() es válido para los más recientes REM
comando, o 0 en caso contrario. Algunas veces REM los comandos no pueden calcular una fecha de activación.
Por ejemplo, lo siguiente REM El comando nunca se puede activar:
REM Lun OMITIR Lun SALTAR MSG ¡Imposible!
tipo de(x_arg)
Devuelve "STRING", "INT", "DATE", "TIME" o "DATETIME", según el tipo de
arg.
tzconvert(q_fechahora, s_srczona [,s_dstzone])
Convierte datetime de la zona horaria nombrada por zona src a la zona horaria nombrada por
zona dst. Si zona dst se omite, se utiliza la zona horaria predeterminada del sistema. El regreso
el valor es DATETIME. Los nombres de las zonas horarias dependen del sistema; consulte a su operador
sistema de valores jurídicos. Aquí hay un ejemplo:
tzconvert('2007-07-08@01:14', "Canada/Eastern", "Canada/Pacific")
devoluciones
2007-07-07@22:14
superior (s_cadena)
Devuelve un CADENA con todos los caracteres en minúsculas en cadena convertido a mayúsculas.
valor(s_varname [,x_predeterminado])
Devuelve el valor de la variable especificada. Por ejemplo, valor("X"+"Y") devuelve
el valor de la variable XY, si está definida. Si XY no está definido, un error
resultados.
Sin embargo, si proporciona un segundo argumento, se devuelve si el nombrevar no es
definido. El valor de expresión ("XY", 0) devolverá 0 si XY no está definido, y el
valor de XY si está definido.
versión()
Devuelve una cadena que especifica la versión de Remind. Para la versión 03.00.04, devuelve
"03.00.04". Se garantiza que a medida que nuevas versiones de Remind son lanzados, el
valor devuelto por versión() aumentará estrictamente, según las reglas de
ordenamiento de cadenas.
nosemana([dq_date, [e_inicio_semana, [i_daystart]]])
Devuelve el número de semana del año. Si no se proporcionan argumentos, devuelve el ISO
8601 número de semana para hoy dia(). Si un argumento datos se suministra, luego devuelve el
Número de semana ISO 8601 para esa fecha. Si se proporcionan dos argumentos, entonces inicio de semana
debe oscilar entre 0 y 6, y representa el primer día de la semana (siendo 0
domingo y siendo 6 sábado.). Si inicio de semana no se suministra, el valor predeterminado es 1.
Si el tercer argumento comienzo del día se proporciona, luego especifica cuándo comienza la Semana 1.
If comienzo del día es menor o igual a 7, entonces la semana 1 comienza el primer inicio de semana on
o después de enero comienzo del día. De lo contrario, la semana 1 comienza el primer inicio de semana en o
después de diciembre comienzo del día. Si se omite, comienzo del día por defecto es 29 (siguiendo la norma ISO
8601 definición.)
día laborable(dqi_arg)
If arg es un FECHA or Fecha y hora, devuelve una cadena que representa el día de la semana de
la fecha. Si arg es un INT de 0 a 6, devuelve el día de la semana correspondiente
("Domingo" a "Sábado").
númdíasem(dq_date)
Devuelve un número del 0 al 6 que representa el día de la semana del especificado datos.
(0 representa el domingo y 6 representa el sábado).
año(fecha_dq)
Devuelve un INT ese es el componente del año de datos.
EXPRESIÓN PEGADO
Una característica extremadamente poderosa de Remind es su capacidad macro, o "pegado de expresiones".
En casi cualquier situación en la que Remind no está esperando una expresión, puede "pegar" una
expresión en. Para hacer esto, rodee la expresión entre corchetes. Por ejemplo:
REM [fecha] MSG foo
Esto evalúa la expresión "mifecha", donde "mifecha" es presumiblemente algún cálculo previo
y luego "pega" el resultado en la línea de comandos para que el analizador lo procese.
Una descripción formal de esto es: Cuando Remind encuentra una expresión "pegada",
evalúa la expresión y fuerza el resultado a un CADENA. Luego sustituye el
cadena para la expresión pegada y continúa el análisis. Tenga en cuenta, sin embargo, que
las expresiones se evalúan una sola vez, no recursivamente. Así, escribiendo:
["[a+b]"]
causas Remind para leer el token "[a+b]". No interpreta esto como un pegado
expresión. De hecho, la única forma de colocar un corchete izquierdo literal en un recordatorio es usar
["["].
Puede usar el pegado de expresiones en casi cualquier lugar. Sin embargo, hay algunas excepciones:
o si Remind está esperando una expresión, como en el SET comando, o el IF mando, tu
should no incluir corchetes. Por ejemplo, utilice:
ESTABLECER un 4+5
y no:
ESTABLECER un [4+5]
o No puede usar el pegado de expresiones para el primer token en una línea. por ejemplo, el
siguiente no funcionará:
["FIJAR"] un 1
Esta restricción se debe a que Remind debe ser capaz de determinar sin ambigüedades la
primer token de una línea para los comandos de control de flujo (que se discutirá más adelante).
De hecho, si Remind no puede determinar el primer token en una línea, asume que
es un REM mando. Si se utiliza el pegado de expresiones, Remind asume que es un REM
mando. Por lo tanto, los siguientes tres comandos son equivalentes:
REM 12 de noviembre de 1993 A LAS 13:05 MSG BOO!
12 de noviembre de 1993 a las 13:05 MSJ BOO!
[12] ["Nov " + 1993] A LAS [12:05+60] MSG BOO!
o No puede usar el pegado de expresiones para determinar el tipo (MSG, CAL, etc) de un REM
mando. Puede pegar expresiones antes y después de la MSG, etc palabras clave, pero
no se puede hacer algo como esto:
REM ["12 de noviembre de 1993 a las 13:05" + "MSG" + "¡BOO!"]
COMÚN ERRORES IN EXPRESIÓN PEGADO
Recuerde, al pegar expresiones, no se insertan espacios adicionales. Por lo tanto,
algo como:
REM[expr]MSG[expr]
probablemente fallará.
Si usas una expresión para calcular un delta or back, asegúrese de que el resultado sea un
numero positivo. Algo como:
REM + [mydelta] 12 de noviembre de 1993 MSG foo
fallará si mydelta pasa a ser negativo.
FLOW CONTROL COMANDOS
Remind tiene comandos que controlan el flujo de un script de recordatorio. Normalmente, recordatorio
los scripts se procesan secuencialmente. Sin embargo, IF y los comandos relacionados le permiten procesar
archivos condicionalmente y omita las secciones que no desea que se interpreten.
EL IF COMANDO
El sistema IF comando tiene la siguiente forma:
SI exp.
comando t
t-comando...
ELSE
comando f
f-comando...
Endif
Tenga en cuenta que los comandos se muestran sangrados para mayor claridad. También el ELSE la porción puede ser
omitido. IF Los comandos se pueden anidar hasta un pequeño límite, probablemente alrededor de 8 o 16 niveles de
anidamiento, dependiendo de su sistema.
Si expr evalúa a un distinto de cero INT, o un no nulo CADENA, Entonces el IF la porción es
considerado verdadero, y el comandos t son ejecutados. Si expr se evalúa como cero o nulo, entonces
de la forma más comandos f (Si el ELSE parte está presente) se ejecutan. Si expr no es de tipo INT
or CADENA, entonces es un error.
Ejemplos:
SI definido("want_hols")
INCLUYE /usr/share/remind/vacaciones
Endif
SI hoy () > '1992/2/10'
set miss_ap "¡Te lo perdiste!"
ELSE
set miss_ap "Todavía tengo tiempo..."
Endif
EL IFTRIG COMANDO
El sistema IFTRIG El comando es similar a un IF comando, excepto que calcula un disparador (como en
de la forma más REM comando), y se evalúa como verdadero si un correspondiente REM el comando se dispararía.
Ejemplos:
IFTRIG 1 de noviembre
; Ejecutado el 1 de noviembre
ELSE
; Ejecutado excepto el 1 de noviembre
Endif
IFTRIG 1 -1 OMITIR Sáb Dom +4
; Ejecutado el último día hábil del mes,
; y los 4 días hábiles anteriores
ELSE
; Ejecutado excepto en los días anteriores
Endif
Tenga en cuenta que IFTRIG El comando calcula una fecha de activación, que se puede recuperar con el
fecha triggada() función. Puede utilizar todos los componentes de activación normales, como HASTA,
delta, etc en el IFTRIG mando.
USUARIO DEFINIDO Las funciones
Además de las funciones integradas, Remind le permite definir sus propias funciones.
El sistema FSET El comando hace esto por ti:
FSET fnombre(args) expr
Nombre es el nombre de la función y sigue la convención para nombrar variables. argumentos
es una lista de argumentos separados por comas, y expr es una expresion. argumentos puede estar vacío, en
en cuyo caso se define una función que no toma parámetros. Aquí hay unos ejemplos:
FSET doble(x) 2*x
FSET yeardiff(fecha1, fecha2) año(fecha1) - año(fecha2)
FSET desde(x) ord(año(trigdate())-x)
La última función es útil en los recordatorios de cumpleaños. Por ejemplo:
REM 1 de noviembre +12 MSG Dean's [desde(1984)] el cumpleaños es %b.
Dean nació en 1984. El ejemplo anterior, el 1 de noviembre de 1992, imprimiría:
El octavo cumpleaños de Dean es hoy.
Notas:
o Si accede a una variable en expr que no está en la lista de argumentos, el "global"
se utiliza el valor (si lo hay).
o Los nombres de funciones y parámetros son significativos solo para 12 caracteres.
o El valor() función always accede al valor "global" de una variable, incluso si
tiene el mismo nombre que un argumento. Por ejemplo:
fset func(x) valor("x")
conjunto x 1
establecer y divertida(5)
La secuencia anterior establece y en 1, que es el valor global de x.
o Las funciones definidas por el usuario pueden llamar a otras funciones, incluidas otras funciones definidas por el usuario.
funciones Sin embargo, las llamadas recursivas no están permitidas.
o Las funciones definidas por el usuario no se verifican en la sintaxis cuando se definen; se produce el análisis
sólo cuando son llamados.
o Si una función definida por el usuario tiene el mismo nombre que una función integrada, se ignora
y se utiliza la función incorporada. Para evitar conflictos con versiones futuras de
Remind (que puede definir más funciones integradas), es posible que desee nombrar a todos los usuarios
funciones definidas que comienzan con un guión bajo.
PRECISA PLANIFICACIÓN
El sistema WARN La palabra clave permite un control preciso sobre la advertencia anticipada de una manera más flexible
que la delta mecanismo. Debe ir seguido del nombre de una función definida por el usuario,
función_advertencia.
Si función_advertencia se proporciona, entonces debe tomar un argumento de tipo INT. Remind
ignora cualquier delta, y en su lugar llama función_advertencia sucesivamente con los argumentos 1, 2,
3, ...
función_advertenciavalor de retorno n se interpreta de la siguiente manera:
o si n es positivo, entonces el recordatorio se activa exactamente n días antes de su desencadenamiento
fecha.
o si n es negativo, entonces se activa n días antes de su fecha de activación, no contando
OMITIRted días.
Como ejemplo, suponga que desea recibir una advertencia sobre el Día de la Independencia de los Estados Unidos los días 5, 3 y 1
por adelantado. Podrías usar esto:
FSET _wfun(x) elige(x, 5, 3, 1, 0)
REM 4 de julio WARN _wfun MSG El Día de la Independencia de Estados Unidos es %b.
NOTAS
1 Si ocurre un error durante la evaluación de función_advertencia, entonces Remind se detiene
llamándolo y simplemente emite el recordatorio en su fecha de activación.
2 Si los valores absolutos de los valores de retorno de función_advertencia no son monótonamente
decreciente, Remind deja de llamarlo y emite el recordatorio en su fecha de activación.
3 función_advertencia debería (como una cuestión de buen estilo) devolver 0 como el valor final en su
secuencia de valores de retorno. Sin embargo, un recordatorio always activarse en su
fecha de activación, independientemente de lo que función_advertencia hace.
similar a WARN, el PROGRAMADO palabra clave permite un control preciso sobre la programación de tiempo
recordatorios Debe ir seguido del nombre de una función definida por el usuario, función_programada.
Si se proporciona una función de programación, entonces debe tomar un argumento de tipo INT. Bastante
que usar el AT tiempo tiempo delta, y tiempo repetir, Remind llama a la función de programación
para determinar cuándo activar el recordatorio. La primera vez que el recordatorio se pone en cola, el
La función de programación se llama con un argumento de 1. Cada vez que se activa el recordatorio,
se vuelve a programar llamando de nuevo a la función de programación. En cada llamada, el argumento
se incrementa en uno.
El valor de retorno de la función de programación debe ser un INT o Captura de. Si el valor de retorno
es un Captura de, luego el recordatorio se vuelve a poner en cola para activarse en ese momento. si es positivo
entero n, luego el recordatorio se vuelve a poner en cola para activarse en el tiempo de activación anterior más n
minutos. Finalmente, si es un número entero negativo o cero, el recordatorio se vuelve a poner en cola para
detonante n minutos antes de la AT hora. Tenga en cuenta que debe haber un AT cláusula para el PROGRAMADO
cláusula para hacer cualquier cosa.
He aquí un ejemplo:
FSET _sfun(x) elegir(x, -60, 30, 15, 10, 3, 1, 1, 1, 1, 0)
REM A LAS 13:00 HORARIO _sfun MSG foo
El recordatorio se activará primero a las 13:00-60 minutos, o a las 12:00. seria lo siguiente
activado 30 minutos después, a las 12:30. Entonces, se activaría a las 12:45, 12:55, 12:58,
12:59, 13:00, 13:01 y 13:02.
NOTAS
1 Si ocurre un error durante la evaluación de función_programada, entonces Remind vuelve a
usando el AT tiempo y el delta y repetir valores, y nunca llamadas función_programada
de nuevo.
2 Si está procesando función_programada produce una hora anterior a la hora actual del sistema, es
llamado repetidamente con un argumento creciente hasta que arroja un valor mayor que o
igual a la hora actual. Sin embargo, si la secuencia de valores calculada durante
la repetición no es estrictamente creciente, entonces Remind vuelve al valor predeterminado
comportamiento y nunca llama función_programada de nuevo.
3 Es muy posible usar función_programada para seguir activando un recordatorio incluso después de que
AT-hora. Sin embargo, no es posible reprogramar un recordatorio pasada la medianoche - no
se permite el cruce de límites de fecha. Además, es muy posible no detonante
un recordatorio sobre el AT tiempo cuando se utiliza una función de programación. Sin embargo, si su
la función de programación finaliza (por las razones 1 y 2) antes de que AT tiempo de la
recordatorio, es will desencadenarse en el AT tiempo, porque el procesamiento normal toma
encima.
4 Sus funciones de programación deberían (como cuestión de buen estilo) devolver 0 cuando no haya más
se requiere programación. Vea el ejemplo.
5 Se evalúan todas las funciones de programación después de se ha leído todo el script Remind
in. Entonces, cualquier definición de función que esté en efecto al final del script es
usado.
EL SATISFACER CLÁUSULA
La forma de REM que los utiliza componentes de SATISFACER es el siguiente:
REM detonante SATISFACER expr
La forma en que esto funciona es la siguiente: Remind primero calcula una fecha de activación, en el modo normal
Moda. A continuación, se establece fecha triggada() a la fecha de activación calculada. Luego evalúa
expr. Si el resultado no es la cadena nula o cero, finaliza el procesamiento. De lo contrario, Remind
calcula la próxima fecha de activación y vuelve a realizar la prueba expr. Esta iteración continúa hasta que expr
se evalúa como distinto de cero o no nulo, o hasta el límite de iteración especificado con el -x
se alcanza la opción de línea de comandos.
If expr no está satisfecho, entonces trigválido() se establece en 0. De lo contrario, trigválido() se establece a
1. En cualquier caso, no se emite ningún mensaje de error.
Esto es realmente útil sólo si expr implica una llamada al fecha triggada() función; de lo contrario,
expr no cambiará como Remind itera.
Un ejemplo de la utilidad de SATISFACER: Suponga que desea recibir una advertencia todos los viernes.
el 13 Su primer intento puede ser:
# ¡INCORRECTO!
REM Vie 13 +2 MSG El viernes 13 es %b.
Pero esto no funcionará. Este recordatorio se activa el primer viernes a partir del 13 de
cada mes. La forma de hacerlo es con una secuencia más complicada:
REM 13 SATISFY númdíasem(trigdate()) == 5
SI trigoválido()
REM [trigdate()] +2 MENSAJE \
El viernes 13 es %b.
Endif
Veamos cómo funciona esto. El SATISFACER cláusula itera a través de todos los 13 de sucesivos
meses, hasta que se encuentre una fecha de activación cuyo día de la semana sea el viernes (== 5). Si una fecha válida
se encontró, usamos la fecha de activación calculada para configurar el próximo recordatorio.
También podríamos haber escrito:
REM Vie SATISFY día(trigdate()) == 13
pero esto daría lugar a más iteraciones, ya que los "viernes" ocurren con más frecuencia que los "13 de
el mes."
Esta técnica de usar una REM Comando para calcular una fecha de activación para ser utilizada por otro
El comando es bastante poderoso. Por ejemplo, suponga que desea OMITIR el Día del Trabajo, que es
el primer lunes de septiembre. Podrías usar:
# Nota: SATISFY 1 es una expresión idiomática para "no hacer nada"
REM lun 1 sept SATISFY 1
OMITIR [trigdate()]
ADVERTENCIA: Este only omite el Next Labor Day, no todos los Labor Days en el futuro. Esta
podría causar resultados extraños, ya que el OMITIR el contexto puede cambiar dependiendo de la fecha actual.
Por ejemplo, si usa el siguiente comando después de los comandos anteriores:
REM Lun DESPUÉS mensaje hola
el resultado no será el esperado. Considere producir un calendario para septiembre de 1992.
El Día del Trabajo fue el lunes 7 de septiembre de 1992. Sin embargo, cuando Remind se acerca a
calculando el desencadenante del martes 8 de septiembre de 1992, el OMITIR El comando ahora será
omitiendo el Día del Trabajo para 1993, y el comando "Lunes DESPUÉS" no se activará. (Pero mira
la descripción de ESCANEAR DESDE en la sección "Detalles sobre el cómputo del activador").
Probablemente sea mejor mantenerse alejado de la informática. OMITIR fechas de activación a menos que mantenga estas
trampas en mente.
Para versiones de Remind a partir del 03.00.07, puede incluir un MSG, CORRE , etc. cláusula en
a SATISFACER cláusula de la siguiente manera:
REM trigger_stuff SATISFY [expr] cuerpo MSG
Tenga en cuenta que sólo para este caso, el expr después de SATISFACER deben encerrarse entre llaves. Debería
vienen después de todos los demás componentes del gatillo, e inmediatamente antes del MSG, CORRE ,
etc palabra clave. Si expr no se puede satisfacer, entonces el recordatorio no se activa.
Por lo tanto, el ejemplo de "Viernes 13" se puede expresar de manera más compacta como:
REM 13 +2 SATISFY [numerosemana(trigdate()) == 5] \
MSG Viernes 13 es %b.
Y puede activar un recordatorio los lunes, miércoles y jueves que ocurren en días impares.
días numerados del mes con lo siguiente:
REM Lun Mie Jue SATISFY [day(trigdate())%2] \
GMS Aquí está!!!
Tenga en cuenta que SATISFACER y OMITIRFUNC a menudo se puede utilizar para resolver el mismo problema, aunque en
diferentes caminos. A veces un SATISFACER es más limpio y a veces un OMITIRFUNC; experimentar y
use lo que le parezca más claro.
DEPURACIÓN - RECORDATORIO GUIONES
Aunque la línea de comandos -d La opción es útil para la depuración, a menudo es una exageración. Para
ejemplo, si enciende el -dx opción para un archivo de recordatorio con muchas expresiones complejas,
obtendrá una gran cantidad de salida. Él DEBUG comando le permite controlar la depuración
banderas bajo el control del programa. El formato es:
DEBUG [+bandera] [-banderas]
bandera y banderas consisten en cadenas de los caracteres "extvlf" que corresponden a la
opciones de depuración discutidas en la sección de opciones de línea de comandos. Si va precedido de un "+",
el grupo correspondiente de opciones de depuración está activado. De lo contrario, se cambian
apagado. Por ejemplo, podría usar esta secuencia para depurar una expresión complicada:
DEPURAR +x
establecer un expresión_muy_compleja(muchos_argumentos)
DEPURAR -x
EL DUMPVARS COMANDO
El comando DUMPVARS muestra los valores de las variables en la memoria. Su formato es:
DUMPVARS [var...]
Si proporciona una lista de nombres de variables separados por espacios, las variables correspondientes son
desplegado. Si no proporciona una lista de variables, entonces todas las variables en la memoria son
desplegado. Para volcar una variable del sistema, coloque su nombre en la lista de variables para volcar. Si
coloca un signo de dólar solitario en la lista de variables para volcar, luego todas las variables del sistema
será objeto de dumping.
EL ERMSG COMANDO
El sistema ERMSG El comando tiene el siguiente formato:
ERMSG cuerpo
El sistema cuerpo se pasa a través del filtro de sustitución (con una fecha de activación implícita de
hoy dia()) y se imprimió en el flujo de salida de error. Ejemplo:
SI !definido("critical_var")
ERRMSG Debe proporcionar un valor para "critical_var"
SALIR
Endif
EL SALIR COMANDO
El ejemplo anterior también muestra el uso de la SALIR dominio. Esto provoca una incondicional
salir del procesamiento de scripts. Cualquier recordatorio cronometrado en cola se descarta. si estas en
modo de calendario (descrito a continuación), el procesamiento del calendario se cancela.
Si proporciona un INT-escriba la expresión después de la SALIR comando, se devuelve a la llamada
programa como el estado de salida. De lo contrario, se devuelve un estado de salida de 99.
EL ENJUAGAR COMANDO
Este comando consiste simplemente en la palabra ENJUAGAR en una línea por sí mismo. El comando se vacía
la salida estándar y los flujos de error estándar utilizados por Remind. Esto no es terriblemente
útil para la mayoría de las personas, pero puede ser útil si ejecuta Remind como un subproceso de otro
programa, y desea utilizar conductos para la comunicación.
CALENDARIO MODO
Si proporciona el -c, -s or -p opción de línea de comandos, entonces Remind se ejecuta en "modo calendario".
En este modo, Remind interpreta el script repetidamente, realizando una iteración a través de
el archivo completo para cada día en el calendario. Los recordatorios que activan se guardan en interno
búferes, y luego insertado en el calendario en los lugares apropiados.
Si también proporciona el -a opción, entonces Remind no incluirá recordatorios cronometrados en el
calendario.
El sistema -p La opción se utiliza junto con la rem2ps programa para producir un calendario en
formato PostScript. Por ejemplo, el siguiente comando enviará código PostScript a
salida estándar:
recordar -p .recordatorios | rem2ps
Puede imprimir un calendario PostScript conectándolo al lpr mando.
Si tiene un script de recordatorio llamado ".recordatorios", y ejecuta este comando:
recordar -c .recordatorios de enero de 1993
then Remind ejecuta el script 31 veces, una vez por cada día de enero. cada vez que
ejecuta el script, incrementa el valor de hoy dia(). Cualquier recordatorio cuya fecha de activación
cerillas hoy dia() se ingresan en el calendario.
MSG y CAL-los recordatorios de tipo, por defecto, tienen todo su cuerpo insertado en el calendario.
CORRE -Los recordatorios de tipo normalmente no se insertan en el calendario. Sin embargo, si adjunta un
parte del cuerpo en la secuencia %"...%", solo se inserta esa parte. Por ejemplo,
considera lo siguiente:
REM 6 de enero MSG %"El cumpleaños de Dianne%" es %b
En el modo normal, Remind imprimiría "El cumpleaños de Dianne es hoy" el 6 de enero.
Sin embargo, en el modo de calendario, solo se inserta el texto "Cumpleaños de Dianne" en el cuadro
para el 6 de enero.
Si utiliza explícitamente la secuencia %"...%" en un CORRE -escriba recordatorio, luego el texto entre
los delimitadores se insertan en el calendario. Si usa la secuencia %"%" en un MSG or
CAL-escriba recordatorio, entonces no se produce ninguna entrada de calendario para ese recordatorio.
CONSERVACIÓN VARIABLES
Gracias Remind itera a través de la secuencia de comandos para cada día en el calendario, operaciones lentas
puede reducir severamente la velocidad de producción de un calendario.
Por ejemplo, suponga que establece las variables "yo" y "nombre de host" de la siguiente manera:
CONFIGURAR mi shell ("whoami")
SET shell de nombre de host ("nombre de host")
Normalmente, Remind borra todas las variables entre iteraciones en modo calendario. Sin embargo, si
ciertas variables son lentas de calcular y no cambiarán entre iteraciones, puede
"preservar" sus valores con el PRESERVAR dominio. Además, dado que las definiciones de función son
preservados entre las iteraciones del calendario, no hay necesidad de redefinirlos en cada
iteración. Por lo tanto, podría utilizar la siguiente secuencia:
SI ! definido ("inicializado")
conjunto inicializado 1
ponme caparazón ("whoami")
establecer shell de nombre de host ("nombre de host")
fset func(x) expresión_compleja
preservar mi nombre de host inicializado
Endif
La operación es la siguiente: en la primera iteración a través del script, "inicializado" es
no definida. Así, los comandos entre IF y Endif son ejecutados. los PRESERVAR comando
asegura que los valores de initialized, me y hostname se conserven para posteriores
iteraciones En la siguiente iteración, los comandos se omiten, ya que se ha inicializado
permaneció definida. Por lo tanto, las operaciones que requieren mucho tiempo y que no dependen del valor de
hoy dia() se hacen una sola vez.
Las variables del sistema (aquellas cuyos nombres comienzan con '$') se conservan automáticamente entre
iteraciones de calendario.
Tenga en cuenta que para la eficiencia, Remind almacena en caché el script de recordatorio (y cualquier INCLUIRd archivos) en
memoria al producir un calendario.
Los recordatorios cronometrados se clasifican y colocan en el calendario en orden de tiempo. Estos son seguidos
por recordatorios no cronometrados. Remind coloca automáticamente la hora de los recordatorios cronometrados en el
calendario según el -b opción de línea de comandos. Los recordatorios en el modo de calendario están ordenados
como si el -g se había utilizado la opción; puede cambiar el orden de clasificación en el modo de calendario al
utilizando explícitamente el -g opción para especificar un orden diferente al predeterminado.
REPETIDO EJECUCIÓN
Si proporciona un repetir parámetro en la línea de comando, y no utilice el -c, -po -s
opciones, Remind funciona de manera similar al modo de calendario. Ejecuta repetidamente el
script de recordatorio, incrementando hoy dia() con cada iteración. Las mismas reglas sobre
Se aplican definiciones de variables y funciones preservadas. Tenga en cuenta que usando repetir en
La línea de comando también habilita el -q opción y deshabilita cualquier -z opción. Como ejemplo, si Ud.
quiero ver como Remind se comportará durante la próxima semana, puede escribir:
recordar .recordatorios '*7'
Si desea imprimir las fechas de los próximos 1000 días, utilice:
(echo 'banner %'; echo 'mensaje [hoy()]%') | recordar - '*1000'
INICIALIZANDO VARIABLES ON EL COMANDO LÍNEA
El sistema -i La opción se utiliza para inicializar variables en el Remind línea de comando. el formato es
-ivar=expr, donde el expr es cualquier expresión válida. Tenga en cuenta que es posible que tenga que utilizar comillas o
escapa para evitar que el shell interprete caracteres especiales en expr. Tu puedes tener
como muchos -i opciones como desee en la línea de comando y se procesan en orden.
Así, si una variable se define en una -i opción, se puede hacer referencia a ella mediante -i
.
Tenga en cuenta que si proporciona una fecha en la línea de comando, no se analiza hasta que todas las opciones
han sido procesados. Así, si usas hoy dia() en cualquiera de los -i expresiones, será
devuelve el mismo valor que realhoy() y no la fecha suministrada en la línea de comando.
Cualquier variable definida en la línea de comando es en conserva como con el PRESERVAR mando.
No debe dejar espacios entre los -i opción y el signo igual; de lo contrario,
se crean extraños nombres de variables a los que solo se puede acceder con el valor() or definido ()
funciones.
También puede definir una función en la línea de comando usando:
-idivertida(args)=definición
Asegúrese de proteger los caracteres especiales de la interpretación del shell.
MÁS ACERCA DE POSDATA
El sistema PS y ARCHIVOPS los recordatorios pasan el código PostScript directamente a la impresora. Se diferencian en
que el PSEl recordatorio de tipo pasa su cuerpo directamente a la salida PostScript (después de
procesado por el filtro de sustitución) mientras que el ARCHIVOPS-el cuerpo del tipo debe consistir simplemente
de un nombre de archivo. los rem2ps programa abrirá el archivo nombrado en el ARCHIVOPS-escribe recordatorio,
e incluir su contenido en la salida PostScript.
Los recordatorios de tipo PostScript para un día en particular se incluyen en la salida de PostScript
ordenados por orden de prioridad. Tenga en cuenta que el orden de los comandos PostScript tiene un gran
impacto en la apariencia de los calendarios. Por ejemplo, el código PostScript para sombrear un
el cuadro de calendario borrará el código para dibujar un símbolo de luna si se coloca el código de símbolo de luna
en el calendario primero. Por esta razón, no debe proporcionar PS or ARCHIVOPSTipo
recordatorios con prioridades; en su lugar, debe asegurarse de que aparezcan en el recordatorio
guión en el orden correcto. El código PostScript debería dibujar objetos trabajando desde el
fondo al primer plano, de modo que los objetos de primer plano se superpongan correctamente a los de fondo.
Si prioriza estos recordatorios y ejecuta el script usando un orden de clasificación descendente para
prioridades, la salida PostScript no funcionará.
Todo el código PostScript para una fecha en particular está encerrado en un ahorrar-restaurar par.
Sin embargo, si se activan varios recordatorios de tipo PostScript para un solo día, cada sección
de PostScript no está encerrado en un ahorrar-restaurar par - en cambio, todo el cuerpo de
Se adjunta PostScript incluido.
La impresora PostScript ejecuta recordatorios de tipo PostScript antes de cualquier
entradas de calendario. Por lo tanto, las entradas regulares del calendario se superpondrán al tipo PostScript.
recordatorios, lo que le permite crear fondos sombreados o gráficos para días particulares.
Antes de ejecutar su código PostScript, el origen del sistema de coordenadas PostScript es
colocado en la esquina inferior izquierda de la "caja" en el calendario que representa
hoy dia(). Esta ubicación está exactamente en el medio de la intersección de la parte inferior y
líneas negras izquierdas que delimitan el cuadro; es posible que deba tener en cuenta el grosor de estas
líneas al calcular posiciones.
Varias variables PostScript están disponibles para el código PostScript que proporcione. Todos
las variables de distancia y tamaño están en unidades PostScript (1/72 pulgadas). Las variables son:
Grosor de línea
El ancho de las líneas negras de la cuadrícula que componen el calendario.
Borde El borde entre el centro de las líneas de la cuadrícula y el espacio utilizado para imprimir.
entradas del calendario. Este borde es normalmente un espacio en blanco.
BoxWidth y BoxHeight
El ancho y alto del cuadro del calendario, de centro a centro del negro
Líneas de cuadrícula.
Altura de la caja de entrada
La altura desde el centro de la línea de cuadrícula negra inferior hasta la parte superior de la línea regular
área de entrada de calendario. El espacio desde aquí hasta la parte superior de la caja se usa solo para
dibuja el número del día.
/FuenteDía, /FuenteEntrada, /FuentePequeña, /FuenteTítulo y /FuenteCabeza
Las fuentes utilizadas para dibujar los números de los días, las entradas del calendario, los calendarios pequeños,
el título del calendario (mes, año) y los encabezados del día de la semana, respectivamente.
Tamaño de día, Tamaño de entrada, Tamaño de título y Tamaño de cabeza
Los tamaños de las fuentes anteriores. (El tamaño de la fuente pequeña del calendario es no se define
aquí.) Por ejemplo, si desea imprimir la fecha en hebreo junto al día normal
número en el calendario, use:
REM PS Borde BoxHeight Borde sub DaySize sub moveto \
/ DayFont findfont DaySize scalefont setfont \
([hebday (today ())] [hebmon (today ())]) mostrar
Observe cómo se utilizan / DayFont y DaySize.
Tenga en cuenta que si proporciona código PostScript, es posible generar archivos PostScript no válidos.
archivos. Siempre pruebe su PostScript a fondo con un visor de PostScript antes de enviarlo
a la impresora. No debe utilizar ningún comentario de estructuración de documentos en su PostScript.
código.
DEMONIO MODO
Si utiliza la opcion de -z opción de línea de comandos, Remind se ejecuta en el modo "demonio". En este modo, sin
se emiten recordatorios "normales". En su lugar, solo se recopilan y ponen en cola los recordatorios cronometrados,
y luego se emiten cada vez que alcanzan su tiempo de activación.
Además, Remind se despierta cada pocos minutos para comprobar la fecha de modificación en el
secuencia de comandos de recordatorio (el nombre de archivo proporcionado en la línea de comando). Si Remind detecta que el
script ha cambiado, se vuelve a ejecutar en modo daemon e interpreta el cambio
guión.
En modo demonio, Remind también vuelve a leer el script de recordatorio cuando detecta que el sistema
la fecha ha cambiado.
En modo demonio, Remind actúa como si el -f se ha utilizado la opción, por lo que para ejecutar en el daemon
modo en segundo plano, use:
recordar -z .recordatorios &
Si utiliza sh or golpear, es posible que deba usar el comando "nohup" para asegurarse de que el daemon
no se elimina cuando cierra la sesión.
PURGA MODO
Si proporciona el -j opción de línea de comandos, Remind corre en purga modo. En este modo, se
intenta purgar los recordatorios vencidos de sus archivos de recordatorio.
En el modo de purga, Remind lee su archivo de recordatorio y crea un nuevo archivo agregando
".purgado" al nombre de archivo original. Tenga en cuenta que Remind nunca edita su archivo original; eso
siempre crea un nuevo archivo .purgado.
Si invocas Remind contra un directorio en lugar de un archivo, entonces se crea un archivo .purgado
para cada archivo *.rem en el directorio.
Normalmente, Remind no crea archivos .purgados para archivos INCLUIDOS. Sin embargo, si proporciona
un argumento numérico después -j, entonces Remind creará archivos .purgados para el nivel especificado
de INCLUYE. Por ejemplo, si invocas Remind con el argumento -j2, luego archivos .purgados
se creará para el archivo (o directorio) especificado en la línea de comando, cualquier archivo
incluidos por ellos, y cualquier archivo incluido por esos archivos. Sin embargo, los archivos .purgados no
crearse para archivos INCLUDE de tercer nivel o superior.
Determinar qué recordatorios han caducado es extremadamente complicado. Remind hace lo mejor que puede, pero
siempre debe comparar el archivo .purgado con el archivo original y fusionar manualmente los cambios
de nuevo en.
Remind anota el archivo .purged de la siguiente manera:
Un recordatorio caducado tiene el prefijo: #!P: Caducado:
En situaciones donde Remind no puede determinar de forma fiable que algo ha caducado, puede
vea los siguientes comentarios insertados antes de la línea problemática:
#!P: No se pueden purgar los recordatorios de tipo SATISFY
#!P: El siguiente IF evaluado como falso...
#!P: Las sentencias REM en el bloque IF no se verificaron para purgar.
#!P: El IF anterior se evaluó como verdadero.
#!P: declaraciones REM en el bloque ELSE no verificadas para purgar
#!P: El siguiente IFTRIG no se activó.
#!P: Las sentencias REM en el bloque IFTRIG no se verificaron para purgar.
#!P: La siguiente línea ha caducado, pero contiene una expresión... verifique
#!P: la siguiente línea puede haber expirado, pero contiene una expresión no constante
#!¡PAG! No se pudo analizar la siguiente línea: Some-Error-Message-Here
Remind siempre anota archivos .purgados con líneas que comienzan con "#!P". Si tales líneas son
encontrado en el mas originales archivo, no se copian en el archivo .purgado.
CLASIFICACIÓN RECORDATORIOS
El sistema -g causas de la opción Remind para ordenar los recordatorios por fecha de activación, hora y prioridad antes
emitiéndolos. Tenga en cuenta que los recordatorios aún se calculan en el orden en que aparecen en el
guion. Sin embargo, en lugar de emitirse inmediatamente, se guardan en un archivo interno.
buffer. Cuando Remind ha terminado de procesar el script, emite los recordatorios guardados en
orden ordenado. los -g la opción puede ir seguida de hasta cuatro caracteres que deben ser todos "a"
o "d". El primer carácter especifica el orden de clasificación por fecha de activación (ascendente o
descendente), el segundo especifica el orden de clasificación por tiempo de activación y el tercero especifica
el orden de clasificación por prioridad. Si el cuarto carácter es "d", los recordatorios sin tiempo son
ordenados antes de recordatorios cronometrados. El valor predeterminado es ordenar todos los campos en orden ascendente y
para ordenar los recordatorios sin hora después de los recordatorios con hora.
En orden ascendente, los recordatorios se emiten con el más inminente primero. Orden descendiente
es al revés Los recordatorios siempre se ordenan por fecha de activación y los recordatorios con la misma
la fecha de activación se ordenan por hora de activación. Si dos recordatorios tienen la misma fecha y
tiempo, entonces la prioridad se usa para desempatar. Recordatorios con la misma fecha, hora y
prioridad se emiten en el orden en que se encontraron.
Puede definir una función definida por el usuario llamada SORTBANNER que toma una FECHATipo
argumento. En el modo de clasificación, ocurre la siguiente secuencia:
If Remind se da cuenta de que el próximo recordatorio a emitir tiene una fecha de activación diferente de la
anterior (o si es el primero en emitirse), entonces se llama a SORTBANNER con el
fecha de activación como su argumento. El resultado se coacciona a una cadena y se pasa a través del
filtro de sustitución con la fecha de activación adecuada. Luego se muestra el resultado.
Aquí hay un ejemplo: considere el siguiente fragmento:
# Desactivar el banner normal
BANDERA %
REM 11 de marzo de 1993 ++1 MSG No tan importante
REM 17 de marzo de 1993 ++7 MSG Camino en el futuro
REM 10 de marzo de 1993 MSG Recordatorio importante
REM 11 de marzo de 1993 ++1 MSG No tan importante - B
FSET sortbanner(x) iif(x == hoy(), \
"***** COSAS QUE HACER HOY *****", \
"----- Cosas que hacer %b -----")
Ejecutando esto con el -gaa opción el 10 de marzo de 1993 produce el siguiente resultado:
***** COSAS QUE HACER HOY *****
Recordatorio importante
----- Cosas que hacer mañana -----
No tan importante
No tan importante - B
----- Cosas que hacer en 7 días -----
Camino en el futuro
Puede utilizar el args () función incorporada para determinar si SORTBANNER ha sido o no
definido. (Esto podría usarse, por ejemplo, para proporcionar una definición predeterminada para SORTBANNER
en un archivo de todo el sistema incluido al final del archivo del usuario.) He aquí un ejemplo:
# Cree una función de sortbanner predeterminada si aún no lo ha hecho
# ha sido definido
si argumentos("ordenarbanner") != 1
fset sortbanner(x) "--- Cosas que hacer %b ---"
terminara si
MSGPREFIJO() Y SUFIJOMSG()
Puede definir dos funciones en su secuencia de comandos llamadas prefijomsg() y sufijomsg(). Ellos
cada uno debe aceptar un argumento, un número de 0 a 9999.
En modo normal, por MSG- y MSF-escriba recordatorios, la siguiente secuencia ocurre cuando Remind
activa un recordatorio:
o si prefijomsg() se define, se evalúa con la prioridad del recordatorio como su
argumento. Se imprime el resultado. Está no pasado por la sustitución
filtrar.
o Se imprime el cuerpo del recordatorio.
o si sufijomsg() se define, se evalúa con la prioridad del recordatorio como su
argumento. Se imprime el resultado. Está no pasado por la sustitución
filtrar.
He aquí un ejemplo: la siguiente definición hace que los recordatorios de prioridad 0 estén precedidos por
"URGENTE" y los recordatorios de prioridad 6000 deben estar precedidos por "(no importante)".
fset msgprefix(x) iif(x==0, "URGENTE: ", \
x==6000, "(no importante) ", "")
En el modo de calendario (con el -c, -s or -p opciones), un par de funciones análogas denominadas
prefijocal() y sufijo cal() Puede ser definido. Funcionan con todos los recordatorios que producen un
entrada en el calendario (es decir, CAL- y posiblemente CORRE -escribe recordatorios así como MSGTipo
recordatorios.)
NOTAS
Normalmente, el cuerpo de un recordatorio va seguido de un retorno de carro. Así, los resultados de
sufijomsg() aparecerá en la línea siguiente. Si no quieres esto, acaba con el cuerpo del
recordatorio con un signo de porcentaje, "%". Si desea un espacio entre sus recordatorios, simplemente
incluir un retorno de carro (tanque(13)) como parte de la sufijomsg() valor de retorno.
If Remind tiene problemas para evaluar prefijomsg(), sufijomsg() or ordenar banner(), verás un
muchos mensajes de error. Para un ejemplo de esto, defina lo siguiente:
fset msgprefix(x) x/0
EXTERIOR IDIOMA APOYAR
Su versión de Remind puede haber sido compilado para admitir un idioma que no sea inglés.
Este soporte puede o no estar completo; por ejemplo, todos los mensajes de error y uso pueden
todavía estar en inglés. Sin embargo, como mínimo, las versiones en idiomas extranjeros de Remind will
nombres de salida de meses y días de la semana en el idioma extranjero. Asimismo, la sustitución
mecanismo sustituirá construcciones adecuadas para la lengua extranjera en lugar de para
Inglés.
Una versión en lengua extranjera de Remind aceptará el inglés o el idioma extranjero
nombres de días de la semana y meses en un script de recordatorio. Sin embargo, por compatibilidad entre
versiones de Remind, debe usar solo los nombres en inglés en sus scripts. Además, si su
El compilador de C o las bibliotecas en tiempo de ejecución no están "limpias en 8 bits" o no entienden la norma ISO-Latin
Es posible que no se reconozcan los juegos de caracteres, los nombres de meses o días con letras acentuadas.
EL HEBREO CALENDARIO
Remind tiene soporte para el calendario hebreo, que es un calendario luni-solar. Esto permite
le permite crear recordatorios para las fiestas judías, jahrzeits (aniversarios de muertes) y
smachot (ocasiones felices).
EL HEBREO AÑO
El año hebreo tiene 12 meses, alternativamente de 30 y 29 días. Los meses son: Tishrey,
Heshvan, Kislev, Tevet, Shvat, Adar, Nisan, Iyar, Sivan, Tamuz, Av y Elul. en biblia
veces, el año comenzaba en Nisan, pero Rosh Hashaná (Año Nuevo judío) ahora se celebra en
el 1 y 2 de Tishrey.
En un ciclo de 19 años, hay 7 años bisiestos, siendo los años 3, 6, 8, 11, 14, 17 y 19 de
el ciclo. En un año bisiesto, se agrega un mes adicional de 30 días antes de Adar. Los dos Adars
se llaman Adar A y Adar B.
Por ciertas razones religiosas, el año no puede comenzar en domingo, miércoles o viernes. A
ajustando esto, se quita un día de Kislev o se agrega a Heshvan. Así, un año regular puede
tiene de 353 a 355 días, y un año bisiesto de 383 a 385.
Cuando Kislev o Heshvan es corto, se llama cazador, o faltante. Cuando es largo, es
, que son Shalem, o lleno.
La fecha judía cambia al atardecer. Sin embargo, Remind cambiará la fecha a medianoche, no
puesta de sol. Entonces, en el período entre la puesta del sol y la medianoche, Remind será un día antes que
la verdadera fecha judía. Esto no debería ser un gran problema en la práctica.
Los cálculos para el calendario judío se basaron en el programa "hdate" escrito por Amos
Shapir de la Universidad Hebrea de Jerusalén, Israel. También suministró lo anterior
Explicación del calendario.
HEBREO FECHA Las funciones
hebday(d_fecha)
Devuelve el día del mes hebreo correspondiente al datos parámetro. Para
ejemplo, el 12 de abril de 1993 corresponde al 21 de nisán de 5753. Por lo tanto, hebday('1993/04/12')
devuelve 21.
hebmon(d_fecha)
Devuelve el nombre del mes hebreo correspondiente a datos. Por ejemplo,
hebmon('1993/04/12') devuelve "Nisan".
hebyear(d_fecha)
Devuelve el año hebreo correspondiente a datos. Por ejemplo, hebyear('1993/04/12')
devuelve 5753.
hebdate(i_día, s_hebmon [,id_yrstart [,i_jahr [,i_una bandera]]])
El sistema hebdate() La función es la más compleja de las funciones de soporte hebreas. Puede
tomar de 2 a 5 argumentos. devuelve un FECHA correspondiente a la fecha hebrea.
El sistema day El parámetro puede variar de 1 a 30 y especifica el día del hebreo.
mes. La hebmón el parámetro es una cadena que debe nombrar uno de los meses hebreos
especificado arriba. Tenga en cuenta que el mes debe estar escrito en su totalidad, y utilice el
Transliteración en inglés mostrada anteriormente. También puede especificar "Adar A" y "Adar
B." Los nombres de los meses no distinguen entre mayúsculas y minúsculas.
El sistema inicio de año El parámetro puede ser un FECHA o un INT. Si es un FECHA, Entonces el
hebdate() busca la primera fecha hebrea en o después de esa fecha. Por ejemplo:
hebdate(15, "Nisán", '1990/01/01')
devuelve 1990/03/30, porque esa es la primera aparición del 15 de Nisán el 1 o después
enero 1990.
If inicio de año es un INT, se interpreta como un año hebreo. Por lo tanto:
hebdate(22, "Kislev", 5756)
devuelve 1995/12/15, porque esa fecha corresponde al 22 Kislev, 5756. Tenga en cuenta que
ninguna de las funciones de fecha hebrea funcionará con fechas fuera recordar normal
intervalo de fechas.
If inicio de año no se suministra, por defecto es hoy dia().
El sistema año modifica el comportamiento de hebdate() como sigue:
If año es 0 (el valor predeterminado), entonces hebdate() sigue escaneando hasta que encuentra una fecha
que satisface exactamente los otros parámetros. Por ejemplo:
hebdate(30, "Adar A", 1993/01/01)
devuelve 1995/03/02, correspondiente a 30 Adar A, 5755, porque ese es el siguiente
ocurrencia de 30 Adar A después del 1 de enero de 1993. Este comportamiento es apropiado para
Purim Katan, que solo aparece en años bisiestos.
If año es 1, entonces la fecha se modifica de la siguiente manera:
o 30 Heshvan se convierte a 1 Kislev en años cuando Heshvan es cazador
o 30 Kislev se convierte a 1 Tevet en los años en que Kislev es cazador
o 30 Adar A se convierte a 1 Nisan en años no bisiestos
o Otras fechas en Adar A se mueven al día correspondiente en Adar en no-
años bisiestos
Este comportamiento es apropiado para smachot (ocasiones alegres) y para algunos jahrzeits.
- ver "JAHRZEITS".
if año es 2, entonces la fecha se modifica de la siguiente manera:
o 30 Kislev y 30 Heshvan se convierten en 29 Kislev y 29 Heshvan,
respectivamente, si el mes es cazador
o 30 Adar A se convierte a 30 Shvat en años no bisiestos
o Otras fechas en Adar A se mueven al día correspondiente en Adar en no-
años bisiestos
if año no es 0, 1 o 2, se interpreta como un año hebreo, y el comportamiento es
calculado como se describe en la siguiente sección, "JAHRZEITS".
El sistema una bandera parámetro modifica el comportamiento de la función para fechas en Adar durante
años bisiestos. los una bandera is only usado si inicio de año es un FECHA tipo.
El sistema una bandera solo afecta los cálculos de fecha si hebmón se especifica como "Adar". en salto
años, se sigue el siguiente algoritmo:
o si una bandera es 0, entonces la fecha se activa en Adar B. Este es el valor predeterminado.
o si una bandera es 1, entonces la fecha se activa en Adar A. Esto puede ser
apropiado para jahrzeits en la tradición Ashkenazi; consulte a un rabino.
o si una bandera es 2, entonces la fecha se activa tanto en Adar A como en Adar B de un
año bisiesto. Algunos Ashkenazim realizan jahrzeit tanto en Adar A como en Adar B.
JAHRZEITS
Un jahrzeit es una conmemoración anual de la muerte de alguien. Normalmente tiene lugar en el
aniversario de la muerte, pero puede retrasarse si el entierro se retrasa; consulte a un rabino para
más información.
Además, debido a que algunos meses cambian de duración, no es obvio qué día
aniversario de una muerte es. Se utilizan las siguientes reglas:
o Si la muerte ocurrió el 30 de Heshvan, y Heshvan en el año posterior a la muerte es
cazador, entonces el jahrzeit se observa el 29 de Heshvan en los años en que Heshvan es
cazador. De lo contrario, el yahrzeit se observa en 1 Kislev cuando Heshvan es cazador.
o Si la muerte ocurrió el 30 de Kislev, y Kislev en el año posterior a la muerte es
cazador, entonces el jahrzeit se observa el 29 de Kislev en los años en que Kislev es cazador.
De lo contrario, el yahrzeit se observa en 1 Tevet cuando Kislev es cazador.
o Si la muerte ocurrió el 1-29 Adar A, se observa el 1-29 Adar en años no bisiestos.
o Si la muerte ocurrió el 30 de Adar A, se observa el 30 de Shvat en un año no bisiesto.
Especificar un año hebreo para el año parámetro hace que el comportamiento correcto sea
seleccionado para una muerte en ese año. También puede que tenga que especificar una bandera, depende de tu
tradicion.
La información de jahrzeit fue suministrada por Frank Yellin, quien citó "The Comprehensive
Calendario Hebreo" de Arthur Spier, y "Calendrical Calculations" de EM Reingold y
Nachum Dershowitz.
FUERA DE BANDA RECORDATORIOS
El sistema SPECIAL La palabra clave se utiliza para transmitir información "fuera de banda" a Remind backends, tales
as recordar or rem2ps. Se utilizan sólo cuando se canalizan datos de un Remind -p línea. (Nota
que el especial COLOR es una excepción; se degrada al equivalente de MSG en recordar
modo de funcionamiento normal.)
Los diversos SPECIALLos s reconocidos son particulares para cada backend; sin embargo, hay tres
SPECIALs que todos los backends deberían intentar admitir. Actualmente cuentan con el apoyo de
rem2ps, recordar y rem2html.
El sistema SOMBRA especial reemplaza el sombra() función. Úsalo así:
REM Sáb Dom TONO ESPECIAL 128
REM Mon TONO ESPECIAL 255 0 0
El sistema SOMBRA La palabra clave va seguida de uno o tres números, del 0 al 255. Si uno
se proporciona un número, se interpreta como un valor en escala de grises de negro (0) a blanco (255).
Si se proporcionan tres números, se interpretan como componentes RGB desde el mínimo (0) hasta
máximo (255). El ejemplo anterior sombrea los fines de semana con un gris bastante oscuro y hace que los lunes sean
rojo totalmente saturado. (Estos matices aparecen en los calendarios producidos por rem2ps, recordar y
rem2html.)
El sistema LUNA especial reemplaza el psluna() función. Úsalo así:
REM [fecha lunar(0)] LUNA ESPECIAL 0
REM [fecha lunar(1)] LUNA ESPECIAL 1
REM [fecha lunar(2)] LUNA ESPECIAL 2
REM [fecha lunar(3)] LUNA ESPECIAL 3
Estos dibujan pequeñas lunas en los distintos calendarios. La sintaxis completa del LUNA especial
es el siguiente:
... ESPECIAL LUNA fase tamaño luna tamaño fuente msg
Fase es un número del 0 al 3, donde 0 representa una luna nueva, 1 el primer cuarto, 2 un
luna llena y 3 el último cuarto.
tamaño lunar es el diámetro en unidades PostScript de la luna a dibujar. Si se omite o se proporciona
como -1, el backend elige un tamaño apropiado.
tamaño de fuente es el tamaño de fuente en unidades PostScript del MSG
msg es un texto adicional que se coloca cerca del glifo de la luna.
Tenga en cuenta que solo el rem2ps soportes de back-end tamaño lunar y tamaño de fuente; los otros backends usan
tamaños fijos.
El sistema COLOR especial le permite colocar recordatorios de colores en el calendario. Úsalo así:
REM ... COLOR ESPECIAL 255 0 0 Este es un recordatorio rojo brillante
REM ... COLOR ESPECIAL 0 128 0 Este es un recordatorio verde oscuro
Puede deletrear COLOR al estilo americano ("COLOR") o al estilo británico ("COLOR"). Este
manual utilizará la forma americana.
Inmediatamente después de COLOR debe haber tres números decimales que van de 0 a 255
especificando intensidades de rojo, verde y azul, respectivamente. El resto de la línea es el
texto para poner en el calendario.
El COLOR especial es "doblemente especial", porque en su modo de funcionamiento normal, Remind trata
un especial de COLOR como un recordatorio tipo MSG. Además, si invocas Remind con -cc...
luego se aproxima a los recordatorios de COLORES ESPECIALES en su terminal.
El sistema SEMANA especial le permite colocar anotaciones como el número de la semana en el calendario. Para
ejemplo, esto numeraría cada lunes con el número de semana ISO 8601. el numero de la semana es
se muestra así: "(Wn)" en este ejemplo, pero puedes poner el texto que quieras después del
palabra clave SEMANA.
REM Lunes SEMANA ESPECIAL (W[weekno()])
OTRO
COMANDO ABREVIATURAS
Los siguientes tokens se pueden abreviar:
o REM se puede omitir; está implícito si no hay otro comando válido presente.
o BORRAR-OMITIR-CONTEXTO -> CLEAR
o EMPUJAR-OMITIR-CONTEXTO -> PUSH
o POP-OMITIR-CONTEXTO -> POP
o DUMPVARS -> DUMP
o BANNER -> PROHIBICIÓN
o INCLUIR -> INC
o ESCANEAR DESDE -> ESCANEAR
HÁBIL EJEMPLOS
Esta sección es una muestra de lo que puede hacer con Remind.
REM 5 de febrero de 1991 a las 14:00 +45 *30 \
EJECUTAR correo -s "Reunión en %2" $NOMBRE DE REGISTRO
El 5 de febrero de 1991, este recordatorio le enviará por correo recordatorios de una reunión a las 2:00 p. m. a la 1:15 p. m.
1:45 y 2:00. El asunto del mensaje de correo será "Reunión a las 2:00 p. m." y el cuerpo
del mensaje estará en blanco.
REM A LAS 17:00 CORRER echo "5:00pm - ¡VETE A CASA!" | menos x -g +0+0 &
Este recordatorio aparecerá en una ventana xless a las 5:00 p. m. todos los días. La ventana xless
contener la línea "5:00 p. m. - ¡VETE A CASA!"
REM A LAS 23:59 EJECUTAR (dormir 120; recordar -a [nombre de archivo()]) &
Este recordatorio se ejecutará en un minuto para la medianoche. Causará una nueva Remind procesar a los
comienza un minuto después de la medianoche. Esto le permite tener un servicio de recordatorio continuo
para que pueda trabajar toda la noche y seguir recibiendo recordatorios cronometrados para las primeras horas de la mañana.
Tenga en cuenta que este truco ya no es necesario, siempre que ejecute Remind en modo demonio.
recordar -c12 /dev/null enero de 1993
Esta invocación de Remind hará que imprima un calendario para 1993, con todas las entradas
dejado en blanco.
REM CAL [trigdate()-fecha(año(trigdate()), 1, 1)+1]
Este ejemplo coloca una entrada en cada casilla de un calendario que muestra el número (1-365 o 366) de
el día del año.
REM martes 2 de noviembre SATISFY (year(trigdate())%4) == 0
SI trigoválido()
REM [trigdate()] ++5 MENSAJE \
¡¡Elecciones presidenciales de EE.UU.!!
Endif
Este ejemplo le advierte 5 días antes de cada elección presidencial estadounidense. El primero REM
El comando calcula el primer martes después del primer lunes de noviembre. (Esto es
equivalente al primer martes a partir del 2 de noviembre). SATISFACER cláusula asegura que
la fecha de activación se emite solo en años electorales, que son múltiplos de 4. La segunda
REM el comando en realidad emite el recordatorio.
DETALLES ACERCA DE GATILLO CÁLCULO
Aquí hay una conceptual descripción de cómo se calculan los disparadores. Tenga en cuenta que Remind
en realidad utiliza un procedimiento mucho más eficiente, pero los resultados son los mismos que si el
se ha seguido el procedimiento conceptual.
Remind comienza a partir de la fecha actual (es decir, el valor de hoy dia()) y escanea hacia adelante,
examinando cada día uno a la vez hasta que encuentre una fecha que satisfaga el disparador, o puede
probar que ninguna de esas fechas (en o después de hoy dia()) existe.
If Remind está ejecutando un SATISFACER-escriba recordatorio, evalúa la expresión con
fecha triggada() establecido en la fecha que se encuentra arriba. Si la expresión se evalúa como cero o nulo
cuerda, Remind continúa el procedimiento de escaneo descrito anteriormente, comenzando con el día
después del gatillo que se encuentra arriba.
El sistema ESCANEAR DESDE cláusula (que tiene una sintaxis similar a HASTA) puede modificar la estrategia de búsqueda
usó. En este caso, Remind comienza el procedimiento de escaneado en fecha_escaneo, que es la fecha
especificado en el ESCANEAR DESDE cláusula. Por ejemplo:
REM lun 1 ESCANER DEL 17 de enero de 1992 MSG Foo
El ejemplo anterior siempre tendrá como fecha de activación el lunes 3 de febrero de 1992. Eso es
because Remind comienza a escanear desde el 17 de enero de 1992 y deja de escanear tan pronto como llega
una fecha que satisface "Mon 1".
El uso principal de ESCANEAR DESDE es en situaciones en las que desea calcular las posiciones de
vacaciones flotantes. Considere el ejemplo del Día del Trabajo que se muestra mucho antes. El día del trabajo es el
primer lunes de septiembre. Puede moverse en un rango de 7 días. Considera lo siguiente
secuencia:
REM lun 1 sept ESCANEAR DESDE [hoy()-7] SATISFY 1
OMITIR [trigdate()]
REM Lun DESPUÉS MSG Hola
El sistema ESCANEAR DESDE cláusula asegura que Remind comienza a escanear desde 7 días antes del actual
fecha. Esto asegura que el Día del Trabajo para el año en curso se seguirá activando
hasta 7 días después de que haya ocurrido. Esto le permite utilizar de forma segura la palabra clave AFTER como
mostrado.
En general, utilice ESCANEAR DESDE como se muestra para muebles seguros OMITIR. La cantidad que debe volver a escanear
por (7 días en el ejemplo anterior) depende del número de posibles días consecutivos OMITIDO
días que pueden ocurrir, y sobre el rango del feriado movible. Generalmente, un valor de 7 es
segura.
El sistema DESDE cláusula opera casi como el contrapunto a HASTA. Impide el recordatorio
de activarse antes de que DESDE fecha. Por ejemplo, el siguiente recordatorio:
REM Lun Jue DESDE 23 Jul 2007 HASTA 2 Ago 2007 Prueba MSG
se activará los lunes y jueves entre el 23 de julio de 2007 y el 2 de agosto de 2007 inclusive.
DESDE es realmente azúcar sintáctico; podría implementar el recordatorio anterior de la siguiente manera:
REM Lun Jue EXPLORAR [max(today(), '2007-07-23')] \
HASTA EL 2 de agosto de 2007 Prueba MSG
pero eso es mucho más difícil de leer. Internamente, Remind trata DESDE exactamente como se ilustra
usando ESCANEAR DESDE. Por esa razón, no puede usar ambos DESDE y ESCANEAR DESDE.
Tenga en cuenta que si utiliza uno REM comando para calcular una fecha de activación, realizar la fecha
cálculos (suma o resta, por ejemplo) y luego use la fecha modificada en un
posterior REM comando, los resultados pueden no be what ustedes destinado a. Esto es porque tu
han eludido el mecanismo de escaneo normal. Deberías intentar escribir REM comandos
que calculan fechas de activación que se pueden usar sin modificar en posteriores REM comandos. los
archivo "defs.rem" que viene con el Remind distribución contiene ejemplos.
DETALLES ACERCA DE TRIGVÁLIDO()
El sistema trigválido() la función devuelve 1 si Remind podría encontrar una fecha de activación para el anterior
REM or IFTRIG dominio. Más específicamente, devuelve 1 si Remind encuentra una fecha no antes
de la forma más comenzando datos of de la forma más exploración que satisface el gatillo. Además, hay uno
caso especial en el que trigválido() devuelve 1 y fecha triggada() devuelve un resultado significativo:
Si REM or IFTRIG El comando no contenía un HASTA cláusula, y contenía todos los
day, mes y year componentes, entonces Remind calculará correctamente una fecha de activación, incluso si
pasa a ser antes del inicio de la exploración. Tenga en cuenta que este comportamiento no es cierto para
versiones de Remind antes de 03.00.01.
Use el recordatorio en línea usando los servicios de onworks.net