InglêsFrancêsEspanhol

favicon do OnWorks

lembrar - Online na nuvem

Execute o lembrete no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando lembrar que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


lembrar - um serviço sofisticado de lembretes

SINOPSE


lembrar [opções] nome do arquivo [dados] [* representante] [tempo]

DESCRIÇÃO


lembrar lê o fornecido nome do arquivo e executa os comandos encontrados nele. Os comandos
são usados ​​para emitir lembretes e alarmes. Cada lembrete ou alarme pode consistir em uma mensagem
enviado para a saída padrão ou um programa a ser executado.

If nome do arquivo é especificado como um único traço '-', então lembrar recebe sua entrada do padrão
entrada. Isso também habilita implicitamente o -o opção, descrita abaixo.

If nome do arquivo passa a ser um diretório em vez de um arquivo simples, então lembrar lê tudo de
os arquivos nesse diretório que correspondem ao padrão "* .rem". Os arquivos são lidos em classificados
pedido; a ordem de classificação pode depender de sua localidade, mas deve corresponder à ordem de classificação usada por
o shell para expandir "* .rem".

lembrar lê seus arquivos do início ao fim, ou até encontrar um
linha cujo único conteúdo é "__EOF__" (sem as aspas.) Qualquer coisa após __EOF__
o marcador é completamente ignorado.

OPÇÕES


lembrar tem uma série de opções. Se você é novo no programa, ignore-os por enquanto e pule
para a seção "Arquivos de lembrete".

-n A -n opção causa lembrar para imprimir o Próximo ocorrência de cada lembrete em um
formato de calendário simples. Você pode classificar isso por data canalizando a saída por meio de
tipo(1).

-j[n] Corre lembrar no modo "purgar" para se livrar de lembretes expirados. Veja a seção PURGE
MODE para detalhes.

-r A -r opção desativa CORRE diretivas e o Concha() função. A partir de Lembrete
3.00.17, usando -u implica -r.

-c[sinalizadores] n
A -c opção causa lembrar para produzir um calendário que é enviado para a saída padrão.
Se você fornecer um número n, então um calendário será gerado para n meses, começando
com o mês atual. Por padrão, um calendário apenas para o mês atual é
produzido.

Você pode preceder n (se houver) com um conjunto de sinalizadores. Os sinalizadores são os seguintes:

'+' faz com que um calendário para n semanas para serem produzidos.

'uma' causas lembrar para exibir lembretes no calendário no dia em que realmente ocorrem
as bem as em qualquer dia anterior especificado pelo lembrete delta.

'eu' causas lembrar para usar caracteres de desenho de linha VT100 para desenhar o calendário. o
os caracteres são codificados permanentemente e só funcionam em terminais que emulam o VT00
conjunto de caracteres de desenho de linha.

'você' é semelhante a 'l', mas causa lembrar usar caracteres de desenho de linha UNICODE para desenhar
o calendário. Os personagens são codificados e só funcionarão em terminais que
são configurados para codificação de caracteres UTF-8.

'c' causas lembrar para usar as sequências de escape do VT100 para aproximar os lembretes de CORES ESPECIAIS.
A aproximação é (necessariamente) muito grosseira, pois o VT100 possui apenas oito
sequências de cores diferentes, cada uma com um de dois brilhos. Um componente de cor
maior que 64 é considerado "ligado", e se qualquer um dos três componentes de cor for
maior que 128, a cor é considerada "brilhante".

-wcol[,caminho[,spc]]]
A -w opção especifica a largura de saída, preenchimento e espaçamento do formatado
saída de calendário. Col especifica o número de colunas no dispositivo de saída, e
o padrão é 80. Almofada especifica quantas linhas usar para "preencher" as caixas de calendário vazias.
O padrão é 5. Se você tiver muitos lembretes em certos dias que tornam o seu
calendário muito grande para caber em uma página, você pode tentar reduzir caminho para fazer o vazio
caixas menores. Spc especifica quantas linhas em branco deixar entre o número do dia
e a primeira entrada de lembrete. O padrão é 1.

Qualquer um col, caminho or spc pode ser omitido, desde que você forneça o número correto de
vírgulas. Não use nenhum espaço na opção.

-s[a]n A -s opção é muito semelhante ao -c opção, exceto que o calendário de saída é
não formatado. Está listado em um "formato simples" que pode ser usado como entrada para
programas mais sofisticados de desenho de calendários. Se n começa com "+", então é
interpretado como um número de semanas.

Se você seguir imediatamente o s com a carta a, Em seguida lembrar exibe lembretes
no calendário no dia em que realmente ocorrem as bem as em qualquer dia anterior
especificado pelo lembrete delta.

-p[a]n A -p opção é muito semelhante ao -s opção, exceto que a saída contém
informações adicionais para uso pelo Rem2PS programa, que cria um PostScript
calendário. Para esta opção, n não pode começar com "+"; deve especificar um número de
meses. O formato do -p saída é descrita no rem2ps(1) página do manual. Se
você segue imediatamente o p com a carta a, Em seguida lembrar exibe lembretes em
o calendário no dia em que realmente ocorrem as bem as em qualquer dia anterior
especificado pelo lembrete delta.

-l Se você usar a opção -l em conjunto com a opção -p, então lembrar outputs
informações adicionais para programas de back-end, como rem2ps. Este adicional
as informações permitem que os programas de back-end correlacionem um lembrete com o arquivo de origem
e o número da linha que o produziu.

-m A -m opção faz com que o -c or -p opções para produzir um calendário cuja primeira coluna
é segunda-feira em vez de domingo. (Isso está em conformidade com o padrão internacional.)

-v A -v opção torna a saída de lembrar um pouco mais prolixo. Atualmente, este
causas lembrar para ecoar uma linha inválida em caso de erro, e para imprimir um documento de segurança
mensagem se um script testar a variável de sistema $ RunOff.

-o A -o opção causa lembrar ignorar tudo UMA VEZ directivas.

-t A -t opção causa lembrar para acionar todos os lembretes não expirados, independentemente do
delta fornecido para cada lembrete.

-tn Se você fornecer um número n depois de -t opção, então lembrar finge que cada não
lembrete expirado tem um delta of n dias e aciona lembretes de acordo.

-h A -h option ("hush ...") suprime certos avisos e mensagens informativas. No
em particular, se nenhum lembrete for acionado, este modo não produzirá nenhuma saída.

-a A -a opção causa lembrar não acionar imediatamente lembretes cronometrados que acionam
no dia atual. Também causa lembrar não colocar lembretes cronometrados em um
calendário. Se você fornecer dois ou mais -a opções, então lembrar precisarão gatilho cronometrado
lembretes que estão no futuro, mas não irão acionar lembretes com horário
passou. (Independentemente de quantos -a opções que você fornece, lembrar não incluirá
lembretes cronometrados no calendário, se pelo menos um -a opção é usada.)

-q A -q opção causa lembrar não enfileirar lembretes cronometrados para execução posterior.

-f A -f opção causa lembrar para permanecer em primeiro plano durante o processamento na fila
lembretes, em vez de bifurcar um processo em segundo plano para tratá-los.

-e A -e opção desvia mensagens de erro (normalmente enviadas para o fluxo de erro padrão)
para o fluxo de saída padrão.

-dtanques
A -d opção ativa certos modos de depuração. o tanques especificar quais modos
habilitar:

e Ecoar todas as linhas de entrada

x Rastreie todas as avaliações de expressão

t Exibir todos os cálculos de data de gatilho

v Despeje a tabela de variáveis ​​após a execução do script de lembrete

l Linhas de eco ao exibir mensagens de erro

f Rastreie a leitura dos arquivos de lembrete

-g[a | d[a | d[a | d[a | d]]]]
Normalmente, os lembretes são emitidos na ordem em que são encontrados no
script de lembrete. o -g opção causa lembrar classificar lembretes por data e hora
antes de emiti-los. O opcional a e d caracteres especificam a ordem de classificação
(crescente ou decrescente) para os campos de data, hora e prioridade. Veja a seção
"Classificando lembretes" para mais informações.

-b[n] Defina o formato de hora para as saídas de calendário e calendário simples. N pode variar de
0 a 2, com o padrão 0. Um valor de 0 faz com que os tempos sejam inseridos em 12 horas
formato (am / pm). 1 faz com que os horários sejam inseridos no formato de 24 horas e 2 inibe
a inserção automática de horários na saída do calendário.

-x[n] Define o limite de iteração para o SATISFAZER cláusula de um REM comando. O padrão é 150.

-kcmd Em vez de simplesmente imprimir MSG-tipo lembretes, isso faz com que sejam passados ​​para o
específico cmd. Você deve usar '% s' onde deseja que o corpo apareça, e pode ser necessário
coloque esta opção entre aspas. Observe que todos os caracteres de shell no corpo do
lembrete são escapados com uma barra invertida, e todo o corpo do lembrete é
passado como um único argumento. Observe que esta opção Substitui da -r opção e
CORRE OFF comando.

Por exemplo, suponha que você tenha um programa X Window chamado xmensagem que aparece um
janela e exibe seus argumentos de invocação. Você pode usar:

lembrar '-kxmessage% s &' ...

ter todo o seu MSG-tipo lembretes processados ​​usando xmessage.

Um aviso: é muito fácil gerar dezenas de processos xmessage com o
técnica acima. Portanto, tenha muito cuidado. Porque todos os caracteres shell e espaços em branco
são escapados, o programa que você executa com o -k opção deve estar preparada para lidar com
toda a mensagem como um único argumento.

-z[n] Corre lembrar no modo daemon. Se n
é fornecido, especifica com que frequência (em minutos) lembrar deveria acordar para verificar se
o script de lembrete foi alterado. N o padrão é 1 e pode variar de 1 a 60.
Observe que o uso do -z opção também ativa o -f opção.

Se você fornecer a opção -z0, lembrar roda em um modo especial chamado servidor modo.
Isso está documentado na página do manual tkremind; Vejo tkremind(1).

-unome Runs lembrar com o uid e gid do usuário especificado por nome. A opção muda
o uid e gid conforme descrito, e define as variáveis ​​de ambiente HOME, SHELL e
USER para o diretório inicial, shell e nome de usuário, respectivamente, do especificado
do utilizador. LOGNAME também é definido com o nome de usuário especificado. Esta opção é destinada a
use em scripts de shell que enviam lembretes a todos os usuários. Observe que a partir de Lembrar
3.00.17, usando -u implica -r - a diretiva RUN e as funções shell () são
Desativado.

Os usuários não root também podem usar o -u opção. No entanto, neste caso, ele apenas muda
as variáveis ​​de ambiente conforme descrito acima. Isso não muda o uid efetivo
ou gid.

-y destaque lembrar para sintetizar uma tag para qualquer lembrete que não tenha uma cláusula TAG.

-ivar=expr
Define o valor do especificado var para expr e conserva var. Expr pode ser qualquer
válido lembrar expressão. Veja a seção "Inicializando Variáveis ​​no Comando
Linha "para mais detalhes.

-ifunção(args)=definição
Permite definir uma função na linha de comando.

Se você fornecer um dados na linha de comando, deve consistir em dia mês ano, Onde dia is
o dia do mês, mês são pelo menos as três primeiras letras do nome inglês do
mês, e ano é um ano (todos os 4 dígitos) de 1990 a cerca de 2075. Você pode deixar de fora o
dia, que então assume 1 como padrão.

Se você fornecer um dados na linha de comando, então lembrar usa-o, em vez do real
data do sistema, como sua noção de "hoje". Isso permite que você crie calendários para os meses futuros,
ou teste para ver como seus lembretes serão acionados no futuro. Da mesma forma, você pode
fornecer um tempo (no formato de 24 horas - por exemplo, 17:15) para definir lembrara noção de "agora" para
um determinado momento. Fornecendo um tempo na linha de comando também habilita implicitamente o -q
opção e desativa o -z opção.

Se você preferir especificar a data de forma mais sucinta, pode fornecê-la como AAAA-MM-DD ou
AAAA / MM / DD. Você pode até fornecer uma data e hora na linha de comando como um argumento:
AAAA-MM-DD @ HH: MM.

Além disso, você pode fornecer um repetir parâmetro, que tem a forma *Números. Isso causa
lembrar ser executado Números vezes, com a data aumentando a cada iteração. Você pode ter que
coloque o parâmetro entre aspas para evitar a expansão do shell. Veja a subseção "Repetido
Execução "na seção" Modo Calendário "para mais informações.

LEMBRETE ARQUIVOS


lembrar usa scripts para controlar sua operação. Você pode usar qualquer editor de texto capaz de
criar arquivos ASCII simples para criar um lembrar roteiro. Os comandos dentro de um script podem
variam do muito simples e quase imediatamente compreensível:

REM 6 Jan MSG Aniversário de Dianne

ao barroco e obscuro:

REM [data (este ano, 1, 1) + 180] ++ 5 OMIT \
sat sun ANTES de MSG [ord (thisyear-1980)] pagamento devido% b!

Um arquivo de lembrete consiste em comandos, com um comando por linha. Várias linhas podem ser
continuou usando o caractere de barra invertida, como no exemplo acima. Neste caso, tudo de
as linhas concatenadas são tratadas como uma única linha por lembrar. Observe que se um erro
ocorre, lembrar relata o número da última linha de uma linha contínua.

lembrar ignora linhas em branco e linhas que começam com '#' ou ';' personagens. Você pode
use o ponto-e-vírgula como um caractere de comentário se desejar passar um lembrar roteiro através do C
pré-processador, que interpreta o caractere '#' como o início de um pré-processamento
Directiva.

Observe que lembrar processa continuações de linha antes de mais nada. Por exemplo:

# Este é um comentário \
Esta linha faz parte do comentário por causa da continuação da linha \
e assim por diante.
REM MSG Esta linha não é ignorada (não \ acima)

lembrar não faz distinção entre maiúsculas e minúsculas; geralmente você pode usar qualquer mistura de maiúsculas ou minúsculas
para comandos, parâmetros, opções de invocação, etc.

A REM COMANDO


O comando mais poderoso em um lembrar script é o REM comando. Este comando é
responsável pela emissão de lembretes. Sua sintaxe é:

REM [UMA VEZ] [data_especificação] [em caminho duplo] [delta] [repetir] [PRIORIDADE prio] [PULAR | ANTES |
APÓS] [OMITIR omitir_lista] [OMITFUNC omitir_função] [AT tempo [delta] [trepidação]]
[CALENDÁRIO função_sched] [WARN função_aviso] [ATÉ data de validade | ATRAVÉS data_última]
[Digitalizar a partir data_de_scan | A PARTIR DE data de início] [DURAÇÃO duração] [TAG etiqueta]MSG | MSF |
CORRE | CAL | SATISFAZER | SPECIAL especial | PS | PSFILE> corpo

As partes do REM comando pode ser especificado em qualquer ordem, exceto que o corpo deve vir
imediatamente após o MSG, CORRE, CAL, PS, PSFILE or SATISFAZER palavra chave.

A REM token é opcional, desde que o restante do comando não possa ser confundido
para outro lembrar comando como OMITIR or CORRE. A parte do REM comando antes do
MSG, MSF CORRE, CAL or SATISFAZER cláusula é chamada de desencadear.

MSG, MSF, CORRE, CAL, ESPECIAL, PS e PSFILE

Essas palavras-chave denotam o tipo do lembrete. (SATISFAZER é mais complicado e será
explicado mais tarde.) A MSG-type lembrete normalmente imprime uma mensagem na saída padrão,
depois de passar o corpo por meio de um filtro de substituição especial, descrito na seção
"O filtro de substituição." No entanto, se você tiver usado o -k opção de linha de comando, então
MSGos lembretes do tipo são passados ​​para o programa apropriado. Observe que as opções -c, -s,
-p e -n desabilite o -k opção.

Observe que você pode omitir o tipo de lembrete; nesse caso, o padrão é MSG. Então você pode
Escreva:

6 de janeiro aniversário de Dianne

embora isso não seja recomendado.

A MSF palavra-chave é quase igual a MSG palavra-chave, exceto que o lembrete é
formatado para caber em um formato de parágrafo. Três variáveis ​​de sistema controlam o
formatação de MSF-tipo lembretes - eles são $ FirstIndent, $ SubsIndent e $ FormWidth.
Elas são discutidas na seção "Variáveis ​​do sistema". o MSF palavra-chave causa o espaçamento
de seu lembrete a ser alterado - espaços extras são descartados e dois espaços são colocados
após pontos e outros caracteres, conforme especificado pelas variáveis ​​do sistema $ EndSent e
$ EndSentIg. Observe que se o corpo do lembrete incluir caracteres de nova linha (colocados
lá com a sequência% _), então as novas linhas são tratadas como o início de novas
parágrafos, e o $ FirstIndent recuo é usado para a próxima linha. Você pode usar dois
novas linhas consecutivas com parágrafos espaçados emitidos a partir de um único corpo de lembrete.

A CORRE-tipo lembrete também passa o corpo através do filtro de substituição, mas então
executa o resultado como um comando do sistema. UMA CAL-tipo lembrete é usado apenas para colocar
entradas no calendário produzidas quando lembrar é executado com o -c, -s or -p opções.

A PS or PSFILE-tipo lembrete é usado para passar o código PostScript diretamente para a impressora quando
produção de calendários PostScript. Isso pode ser usado para sombrear certas entradas do calendário (consulte
a função psshade ()), incluir gráficos no calendário ou quase qualquer outra finalidade que você
pode pensar. Você não deve usar esses tipos de lembretes, a menos que seja um especialista
Programador PostScript. o PS e PSFILE lembretes são ignorados a menos lembrar é executado com
da -p opção. Consulte a seção "Mais sobre PostScript" para obter mais detalhes.

A SPECIAL-tipo lembrete é usado para passar informações "fora da banda" de lembrar para uma
back-end de produção de calendário. Deve ser seguido por uma palavra indicando o tipo de
dados especiais sendo passados. O tipo de lembrete especial depende do back-end. Para
da Rem2PS Processo interno, SPECIAL PostScript é equivalente a uma PS- digite lembrete e SPECIAL
Arquivo PS é equivalente a uma PSFILE-tipo lembrete. O corpo de um SPECIAL lembrete é
obviamente dependente do back-end.

INFORMAÇÃO ESPECIFICAÇÕES

A data_especificação consiste de zero a quatro partes. Essas partes são dia (dia do mês), mês
(nome do mês), ano e dia da semana. Mês e dia da semana são os nomes em inglês dos meses e
dias úteis. Devem ser usados ​​pelo menos os três primeiros caracteres. Os seguintes são exemplos
das várias partes de um data_especificação:

dia: 1, 22, 31, 14, 3

mês: JANEIRO, fevereiro, março, APR, maio, agosto

ano: 1990, 1993, 2030, 95 (interpretado como 1995). O ano pode variar de 1990 a 2075.

dia da semana:
Segunda, terça, quarta, quinta, sexta, sábado, domingo

Observe que pode haver vários dia da semana componentes separados por espaços em um data_espec.

INTERPRETAÇÃO OF INFORMAÇÃO ESPECIFICAÇÕES

Os exemplos a seguir mostram como as especificações de data são interpretadas.

1. Especificação de data nula - o lembrete é acionado todos os dias. A data de disparo para um
execução específica é simplesmente a data atual do sistema.

2. Somente dia presente. O lembrete é acionado no dia especificado de cada mês. o
A data de disparo para uma determinada execução é o dia mais próximo da data atual do sistema. Para
exemplo:
REM 1 MSG Primeiro de cada mês.
REM 31 MSG 31º de cada mês que tem 31 dias.

3. Somente mês presente. O lembrete é acionado todos os dias do mês especificado.
Exemplo:
REM Fev MSG Todos os dias em fevereiro

4. dia e mês presente. Exemplos:
REM 6 de janeiro MSG todo 6 de janeiro
REM 29 de fevereiro MSG Todo 29 de fevereiro

5. Somente ano presente. Exemplo:
REM 1991 MSG Todos os dias em 1991

6. ano e dia presente. Exemplos:
REM 1 1990 MSG primeiro de cada mês em 1
REM 1992 23 MSG 23 de cada mês em 1992

7. ano e mês presente. Exemplos:
REM de fevereiro de 1991 MSG Todos os dias em fevereiro de 1991
REM 1992 setembro MSG Todos os dias em setembro 1992

8. ano, mês e dia presente. Exemplos:
REM 8 de janeiro de 1991 MSG 8 de janeiro de 1991.
REM 1992 9 de março MSG 9 de março de 1992.

9. dia da semana só. Exemplos:
REM Sat MSG todos os sábados
REM Seg Ter Qua Qui Sex MSG Todos os dias úteis
REM segunda-feira quarta-feira MSG toda segunda e quarta-feira

10. dia da semana e dia presente. Exemplos:
REM Sat 1 MSG Primeiro sábado de cada mês
REM Seg Ter Qua Qui Sex 15 \
MSG 1º dia útil após 15 de cada mês

11. dia da semana e mês presente. Exemplos:
REM Mon March MSG Todas as segundas-feiras de março
REM Seg Ter Qua Qui Sex Fev MSG Todos os dias úteis em fevereiro

12. dia da semana, mês e dia presente. Exemplos:
REM Segunda-feira, 1º de março MSG Primeira segunda-feira de março
REM Sáb Dom 15 de julho MSG Primeiro sábado ou domingo em ou após 15 de julho

13. dia da semana e ano presente. Exemplo:
REM Sat Sun 1991 MSG Todos os sábados e domingos em 1991

14. dia da semana, dia e ano presente. Exemplos:
REM seg 15 1990 MSG 1ª seg após 15 de cada mês em 1990
REM Seg Ter Qua Qui Sex 1 1990 \
MSG 1º dia útil de cada mês em 1990

15. dia da semana, mês e ano presente. Exemplo:
REM Seg Qua 1991 Fev MSG Toda Seg e Qua em fevereiro 1991.

16. dia da semana, dia, mês e ano presente. Exemplo:
REM Seg Ter Qua Qui Sex 28 Out 1990 \
MSG 1º dia útil em ou após 28 de outubro de 1990.

Observe que quando ambos dia da semana e dia são especificados, lembrar escolhe a primeira data em ou
depois do especificado dia que também satisfaz o dia da semana limitação. Ele faz isso por
escolhendo a primeira data em ou após a especificada dia que está listado na lista de
dias úteis. Portanto, um lembrete como:

REM Seg Ter 28 Out 1990 MSG Hi

seria emitido apenas na segunda-feira, 29 de outubro de 1990. Não seria emitido na terça, 30
De outubro de 1990, visto que o dia 29 é a primeira data a atender a dia da semana restrições.

FORMA ABREVIADA INFORMAÇÃO ESPECIFICAÇÕES

Além de soletrar o dia, mês e ano separadamente, você pode especificar AAAA-MM-DD
ou AAAA / MM / DD. Por exemplo, as seguintes declarações são equivalentes:

REM 5 de junho de 2010 MSG Cool!
REM 2010-06-05 MSG Cool!

Você também pode especificar uma data e hora como AAAA-MM-DD @ HH: MM. Essas declarações são
equivalente:

REM 19 de dezembro de 2010 AT 16:45 MSG Hi
REM 2010-12-19 @ 16:45 MSG Hi

Há uma sutileza nas especificações de datas abreviadas: as seguintes afirmações são
não equivalente:

REM 19 de dezembro de 2010 AT 16:45 +60 MSG Hi
REM 2010-12-19 @ 16: 45 +60 MSG Hi

Na segunda afirmação, o "+60" é um delta que se aplica à data em vez de um
delta isso se aplica ao tempo. Recomendamos usar explicitamente a palavra-chave AT com cronometrado
lembretes.

A LEMBRAR ALGORITMO

lembrar usa o seguinte algoritmo para calcular uma data de gatilho: A partir do atual
data, ele examina cada dia, um de cada vez, até encontrar uma data que satisfaça a data
especificação, ou prova para si mesma que tal data não existe. (Na realidade, lembrar apenas
se comporta como se usasse este algoritmo; seria muito lento na prática. Internamente,
lembrar usa técnicas muito mais rápidas para calcular uma data de disparo.) Veja DETALHES SOBRE
TRIGGER COMPUTATION para obter mais informações.

PARA TRÁS DIGITALIZAÇÃO

Às vezes, é necessário especificar uma data como sendo um determinado período de tempo antes de outro
encontro. Por exemplo, a última segunda-feira de um determinado mês é calculada como a primeira segunda-feira em
no próximo mês, menos 7 dias. o em caminho duplo especificação no lembrete é usada neste
caso:

REM Seg 1 -7 MSG Última segunda-feira de cada mês.

A em caminho duplo é especificado com um ou dois traços seguidos por um número inteiro. Isso faz com que lembrar para
mova "para trás" do que normalmente seria a data de disparo. A diferença entre --7
e -7 será explicado quando o OMITIR palavra-chave é descrita.

ADVANCE ATENÇÃO

Para alguns lembretes, é apropriado receber um aviso prévio do evento. Para
Por exemplo, você pode desejar ser lembrado do aniversário de alguém com vários dias de antecedência. o
delta porção do REM comando consegue isso. É especificado como um ou dois sinais "+"
seguido por um número n. Novamente, a diferença entre os formulários "+" e "++" será
explicado sob o OMITIR palavra chave. lembrar irá disparar o lembrete no gatilho computado
data, bem como em cada um dos n dias antes do evento. aqui estão alguns exemplos:

REM 6 Jan +5 MSG Lembre-me do aniversário com 5 dias de antecedência.

O exemplo acima seria acionado a cada 6 de janeiro, bem como de 1 a 5
de janeiro.

PERIÓDICO LEMBRETES

Já vimos alguns mecanismos embutidos para certos tipos de lembretes periódicos.
Por exemplo, um evento que ocorre todas as quartas-feiras pode ser especificado como:

REM Quarta Evento MSG!

No entanto, eventos que não se repetem diariamente, semanalmente, mensalmente ou anualmente requerem outro
abordagem. O repetir componente do REM comando preenche essa necessidade. Para usá-lo, você deve
especificar completamente uma data (ano, mês e dia e, opcionalmente, dia da semana). repetir
componente é um asterisco seguido por um número que especifica o período de repetição em dias.

Por exemplo, suponha que você receba toda segunda quarta-feira, e seu último dia de pagamento foi
Quarta-feira, 28 de outubro de 1992. Você pode usar:

REM 28 de outubro de 1992 * 14 MSG Payday

Isso emite o lembrete a cada 14 dias, a partir da data de acionamento calculada. Vocês
pode usar delta e em caminho duplo com repetir. Observe, no entanto, que o em caminho duplo é usado apenas para calcular
a data de disparo inicial; depois disso, o lembrete se repete com o período especificado.
Da mesma forma, se você especificar um dia da semana, ele será usado apenas para calcular a data inicial e
não afeta o período de repetição.

Digitalizar a partir e A PARTIR DE

A Digitalizar a partir e A PARTIR DE palavras-chave são para avançado lembrar apenas programadores, e serão
explicado na seção "Detalhes sobre o Trigger Computation" próximo ao final deste manual.
Observe que Digitalizar a partir está disponível apenas em versões de lembrar a partir de 03.00.04. A PARTIR DE is
disponível apenas a partir de 03.01.00.

PRIORIDADE

A PRIORIDADE a palavra-chave deve ser seguida por um número de 0 a 9999. É usada no calendário
modo e ao classificar lembretes. Se dois lembretes tiverem a mesma data e hora de acionamento,
em seguida, eles são classificados por prioridade. Se o PRIORIDADE palavra-chave não é fornecida, um padrão
prioridade de 5000 é usada. (Este padrão pode ser alterado ajustando a variável do sistema
$ DefaultPrio. Consulte a seção "Variáveis ​​do sistema" para obter mais informações.)

TERMO DATAS

Alguns lembretes devem ser emitidos periodicamente por um determinado período, mas depois expiram. Para
Por exemplo, suponha que você tenha uma aula todas as sextas-feiras e que sua última aula seja no dia 11 de dezembro
1992. Você pode usar:

REM Sex ATÉ 11 de dezembro de 1992 Aula de MSG hoje.

Outro exemplo: suponha que você tenha funções de júri de 30 de novembro de 1992 até 4 de dezembro de 1992.
O seguinte lembrete emitirá a mensagem todos os dias de seu dever de júri, bem como 2
dias antes do tempo:

REM 1992-11-30 * 1 +2 ATÉ 1992-12-04 MSG Júri

Observe que o repetir de * 1 é necessário; sem ele, o lembrete seria emitido apenas em
30 de novembro (e os dois dias anteriores)

Como um caso especial, você pode usar o ATRAVÉS palavra-chave em vez de * 1 e ATÉ. Os seguintes
dois REM os comandos são equivalentes:

REM 1992-11-30 * 1 +2 ATÉ 1992-12-04 MSG Júri

REM 1992-11-30 +2 ATRAVÉS DE 1992-12-04 MSG Júri

A UMA VEZ Palavra-chave

Às vezes, é necessário garantir que os lembretes sejam executados apenas uma vez em um determinado dia. Para
por exemplo, se você tiver um lembrete que faz um backup de seus arquivos todas as sextas-feiras:

REM Sex RUN do_backup

(Aqui, faça backup é considerado um programa ou script de shell que faz o trabalho.) Se você
corrida lembrar a partir do seu script .login, por exemplo, e faça login várias vezes por dia, o
faça backup programa será executado cada vez que você fizer login. Se, no entanto, você usar o UMA VEZ palavra chave
no lembrete, o lembrar verifica a última data de acesso do script de lembrete. Se for
o mesmo que a data atual, lembrar assume que já foi executado e não
emitir lembretes contendo o UMA VEZ palavra chave.

Observe que se você visualizar ou editar seu script de lembrete, a última data de acesso será atualizada,
e os votos de UMA VEZ a palavra-chave não funcionará corretamente. Se você começar lembrar com o -o opção,
então o UMA VEZ palavra-chave será ignorada.

LOCALMENTE OMITANDO DIAS ÚTEIS

A OMITIR porção do REM comando é usado para "omitir" certos dias ao contar o delta
or em caminho duplo. É especificado usando a palavra-chave OMITIR seguido por uma lista de dias da semana. Seu
a ação é mais bem ilustrada com exemplos:

REM 1 +1 OMIT Sat Sun MSG Evento importante

Este lembrete é normalmente acionado no primeiro dia de cada mês, bem como no dia
precedendo-o. No entanto, se o primeiro dia do mês cair em um domingo ou segunda-feira, o
lembrete é acionado a partir da sexta-feira anterior. Isso ocorre porque o delta de +1
não conta sábado ou domingo quando conta regressivamente a partir da data de acionamento até
determinar quanto aviso antecipado deve ser dado.

Compare isso com o uso de "++ 1" no comando acima. Neste caso, o lembrete é
desencadeada no primeiro dia de cada mês, bem como no dia anterior. Os dias omitidos
são contados.

REM 1 -1 OMIT Sáb Dom MSG Último dia útil do mês

Novamente, no exemplo acima, o em caminho duplo de -1 normalmente faz com que a data de disparo seja a
último dia do mês. No entanto, por causa do OMITIR cláusula, se o primeiro dia do mês
cai em um domingo ou segunda-feira, a data de acionamento é movida para trás após o fim de semana para
Sexta-feira. (Se você omitiu feriados globalmente, o lembrete será movido para o passado
eles também. Consulte "O comando OMIT" para obter mais detalhes.)

Por comparação, se tivéssemos usado "--1", o lembrete seria acionado no último dia de
o mês, independentemente do OMITIR.

COMPUTADO LOCAL OMIT

A OMITFUNC frase do REM comando permite que você forneça uma função que determina
se uma data é ou não omitida. A função recebe um único parâmetro do tipo INFORMAÇÃO,
e deve retornar um número inteiro diferente de zero se a data for considerada "omitida" e 0 caso contrário.
Aqui está um exemplo:

FSET _terceiro (x) (dia (x)% 3) || \
(wkdaynum (x) == 0) || \
(wkdaynum (x) == 6)
REM OMITFUNC _terceiro APÓS MSG Dia de trabalho divisível por 3

No exemplo acima, o lembrete é acionado toda segunda a sexta-feira cujo dia do mês
o número é divisível por três. Funciona assim:

o A OMITFUNC _terceiro porção causa todos os dias para os quais _terceiro (x) retorna diferente de zero para
ser considerado "omitido". Isso faz com que todos os dias cujo número do dia do mês seja não a
múltiplo de três a ser omitido. Observe que _third também retorna diferente de zero se o
o dia da semana é domingo ou sábado.

o A APÓS palavra-chave faz com que o lembrete seja movido após um bloco de dias omitidos.

A combinação das palavras-chave OMITFUNC e AFTER faz com que o lembrete seja emitido todos os dias
cujo número do dia do mês é divisível por três, mas não no sábado ou domingo.

Observe que se você usar OMITFUNC, então um local OMITIR is ignoradas como são todos os global OMITIR. Se
você deseja omitir dias da semana específicos, sua função omitir precisará testá-los
especificamente. Se você quiser levar em consideração o global OMITIR contexto, então sua omissão
função precisará testar explicitamente (usando o isomitado () função.)

Observe que um incorreto OMITFUNC pode fazer com que todos os dias sejam considerados omitidos. Por isso
razão, quando lembrar pesquisa por meio de dias omitidos, ele encerra a pesquisa após o
SATISFAZER limite de iteração (opção de linha de comando -x.)

TEMPO LEMBRETES

Lembretes cronometrados são aqueles que têm um AT palavra-chave seguida por um tempo E opcional delta
e trepidação. O tempo deve ser especificado no formato de 24 horas, com 0:00 representando
meia-noite, 12:00 representando meio-dia e 23:59 representando um minuto para meia-noite. Você pode
use dois pontos ou um ponto final para separar as horas dos minutos. Ou seja, 13:39 e
13.39 são equivalentes.

lembrar trata lembretes cronometrados especialmente. Se a data de disparo para um lembrete cronometrado é o
igual à data atual do sistema, o lembrete é colocado na fila para ativação posterior. Quando lembrar
terminou de processar o arquivo de lembrete, ele se coloca em segundo plano e ativa
lembretes cronometrados quando a hora do sistema atingiu a hora especificada.

Se a data de disparo for não igual à data do sistema, o lembrete não é enfileirado.

Por exemplo, o seguinte lembrete, acionado todos os dias úteis, irá emitir uma mensagem
dizendo para você sair às 5h:

REM Seg Ter Qua Qui Sex AT 17:00 MSG Hora de sair!

O seguinte lembrete será acionado às quintas e sextas-feiras, mas só ficará na fila
às sextas-feiras:

REM Sex ++ 1 AT 13:00 MSG Almoço às 1:XNUMX Sexta-feira.

A delta e trepidação tem a mesma forma que um repetir e delta, mas são especificados em
minutos. Por exemplo, este lembrete será acionado às 12h00 e também aos 45 minutos
antes:

REM AT 12:00 +45 MSG Exemplo

O seguinte será emitido a partir das 10h45, a cada meia hora até às 11h45 e novamente às
meio dia.

REM AT 12:00 +75 * 30 MSG Exemplo 2

O "+75" significa que o lembrete é emitido a partir de 75 minutos antes do meio-dia; em outro
palavras, às 10:45. O * 30 especifica que o lembrete deve ser emitido posteriormente a cada
30 minutos. Observe que o lembrete é sempre emitido no horário especificado, mesmo se o
delta não é um múltiplo de trepidação. Portanto, o exemplo acima é emitido às 10h45,
11h15, 11h45 e 12h. Observe que na especificação de tempo, não há
distinção entre as formas "+" e "++" de delta.

Normalmente, lembrar emitirá lembretes cronometrados à medida que processa o script de lembrete, também
como enfileirá-los para mais tarde. Se você não quer lembrar emitir os lembretes quando
processando o script, mas apenas para colocá-los em fila para uso posterior, use o -a opção de linha de comando.
Se você não quiser que os lembretes fiquem na fila para serem exibidos mais tarde, use o -q opção de linha de comando.

Normalmente, lembrar bifurca um processo em segundo plano para lidar com lembretes enfileirados. Se você quiser
lembrar para permanecer em primeiro plano, use o -f opção de linha de comando. Isso é útil para
exemplo, em scripts .xinitrc, onde você pode usar o comando:

lembrar -fa myreminders &

Isso garante que, ao sair do X-Windows, o lembrar processo é morto.

ATENÇÃO SOBRE(ABOUT) TEMPO LEMBRETES

Nota: Se você usar funções ou variáveis ​​definidas pelo usuário (descritas posteriormente) nos corpos de
lembretes cronometrados, então, quando os lembretes cronometrados são ativados, as variáveis ​​e funções
têm as definições que estavam em vigor no final do script de lembrete. Esses
definições podem não necessariamente aqueles que estavam em vigor no momento em que o lembrete foi
enfileiradas.

A CALENDÁRIO E WARN CHAVES

A CALENDÁRIO palavra-chave permite um controle mais preciso sobre o acionamento de lembretes cronometrados, e
da WARN palavra-chave permite um controle preciso sobre o acionamento antecipado de todos os tipos de
lembretes. No entanto, a discussão deve ser adiada até depois das expressões e definidas pelo usuário
funções são explicadas. Consulte a subseção "Programação precisa" mais adiante.

TAG E DURAÇÃO

A TAG palavra-chave permite "marcar" certos lembretes. Esta facilidade é usada por certos
extremidades ou sistemas construídos em torno lembrar, como TkRemind. Esses back-ends têm
regras sobre tags; consulte a documentação para obter detalhes.

A TAG a palavra-chave é seguida por uma tag de até 48 caracteres. Você pode ter como
muitas cláusulas TAG conforme desejar em uma determinada instrução REM.

Se você fornecer o -y opção para lembrar, então qualquer lembrete que não tenha um TAG vai ter um
sintetizado. A tag sintetizada consiste nos caracteres "__syn__" seguidos do
representação hexadecimal da soma MD5 da linha de comando REM. Isso permite que você dê um
identificador mais ou menos exclusivo para cada comando REM distinto.

A DURAÇÃO a palavra-chave faz sentido apenas para lembretes cronometrados; especifica a duração de um
evento. Atualmente, isso não é usado, mas pode ser usado no futuro por back-ends ou
sistemas de agendamento construídos em torno de lembrar. Por exemplo, se você tiver uma reunião de 90 minutos
começando às 1h, você pode usar:

REM 5 de março de 1999 ÀS 13:00 DURAÇÃO 1:30 Reunião MSG

Observe que duração é especificado em horas e minutos.

A SUBSTITUIÇÃO FILTRO


Antes de ser processado, o corpo de um REM comando é passado por um filtro de substituição.
O filtro procura sequências "% x" (onde "x" é qualquer letra e alguns outros caracteres)
e realiza substituições conforme mostrado abaixo. (Todas as datas referem-se à data de ativação do
lembrete.)

%a é substituído por "em dia da semana, dia mês, ano"
Por exemplo, considere o lembrete:

REM 18 de outubro de 1990 +4 Reunião de MSG com Bob% a.

Em 16 de outubro de 1990, iria imprimir "Reunião com Bob na quinta-feira, 18 de outubro,
1990. "

Em 17 de outubro de 1990, iria imprimir "Reunião com Bob amanhã".

Em 18 de outubro de 1990, seria publicado "Meeting with Bob today".

%b é substituído por "em diff hora do dia "onde diff é o real número de dias
entre a data atual e a data de acionamento. (OMITIR não tem efeito.)
Por exemplo, considere:

REM 18 de outubro de 1990 +4 Reunião de MSG com Bob% b.

Em 16 de outubro de 1990, iria imprimir "Reunião com Bob em 2 dias".

Em 17 de outubro de 1990, iria imprimir "Reunião com Bob amanhã".

Em 18 de outubro de 1990, seria publicado "Meeting with Bob today".

%c é substituído por "em dia da semana"
Exemplo: REM 18 out 1990 +4 MSG Meeting with Bob% c.

Em 16 de outubro de 1990, iria imprimir "Reunião com Bob na quinta-feira".

Em 17 de outubro de 1990, iria imprimir "Reunião com Bob amanhã".

Em 18 de outubro de 1990, seria publicado "Meeting with Bob today".

%d é substituído por "dia", o dia do mês.

%e é substituído por "em dd-mm-aaaa"

%f é substituído por "em mm-dd-aaaa"

%g é substituído por "em dia da semana, dia mês"

%h é substituído por "em dd-mm"

%i é substituído por "em mm-dd"

%j é substituído por "em dia da semana, mês dia-th, ano"Este formulário anexa os caracteres
"st", "nd", "rd" ou "th" para o dia do mês, conforme o caso.

%k é substituído por "em dia da semana, mês dia"

%l é substituído por "em aaaa-mm-dd"

%m é substituído por "mês", o nome do mês.

%n é substituído pelo número (1 a 12) do mês.

%o é substituído por "(hoje)" se e somente se a data atual do sistema for a mesma que
a data sendo usada por lembrar como a data atual. Lembre-se de que você pode especificar um
data para lembrar para usar na linha de comando. Esta substituição geralmente não é
útil em um REM comando, mas é útil em um BANDEIRA comando. (Veja "O BANNER
Comando.")

%p é substituído por "s" se o diff entre a data atual e a data de acionamento é
não 1. Você pode usar isso para construir lembretes como:
REM 1 jan +4 MSG% x dia% p faltam antes do ano novo!

%q é substituído por "s" se o diff entre a data de acionamento e a data atual é
1. Caso contrário, ele é substituído por "s '". Isso pode ser usado da seguinte forma:
REM 1 jan +4 MSG Ano Novo em% x dia% q hora!

%r é substituído pelo dia do mês (01 a 31) preenchido com um zero à esquerda se
necessário preencher para dois dígitos.

%s é substituído por "st", "nd", "rd" ou "th" dependendo do dia do mês.

%t é substituído pelo número do mês (01 a 12) preenchido com dois dígitos com um
zero à esquerda.

%u é substituído por "em dia da semana, dia mês, ano"Isso é semelhante a %a exceto
que "st", "nd", "rd" ou "th" é adicionado ao dia como apropriado.

%v é substituído por "em dia da semana, dia mês"

%w é substituído por "dia da semana", o nome do dia da semana.

%x é substituído pelo diff entre a data atual e a data de acionamento. o diff
é definido como o número real de dias entre essas duas datas; OMITIR não são
contado. (A subtração estrita de data é realizada.)

%y é substituído por "ano", o ano da data de acionamento.

%z é substituído por "yy", os dois últimos dígitos do ano.

%_ (porcentagem de sublinhado) é substituído por uma nova linha. Você pode usar isso para alcançar
lembretes multilinhas.

%1 é substituído por "agora", "m minutos a partir de agora ","m minutos atrás", "h horas a partir de agora ",
"h horas atrás", "h horas e m minutos a partir de agora "ou"h horas e m minutos atrás ", como
apropriado para um lembrete cronometrado. Observe que, a menos que você especifique o -a opção,
lembretes cronometrados serão acionados como lembretes normais e, portanto, um lembrete cronometrado
que ocorreu no início do dia pode ser acionado. Isso faz com que a necessidade de
formulários "... atrás".

%2 é substituído por "em hh:mmam "ou" ..pm "dependendo do AT hora do lembrete.

%3 é substituído por "em hh:mm"no formato de 24 horas.

%4 é substituído por "mm" Onde mm é o número de minutos entre "agora" e a hora
especificado por AT. Se o AT a hora é anterior à hora atual, então o resultado
é negativo.

%5 é substituído por "ma" Onde ma é o valor absoluto do número produzido por %4.

%6 é substituído por "atrás" ou "a partir de agora", dependendo da relação entre o AT
hora e a hora atual.

%7 é substituído pelo número de horas entre o AT hora e a hora atual. Isto
é sempre não negativo.

%8 é substituído pelo número de minutos entre o AT hora e a hora atual,
depois do expediente (%7) foram subtraídos. Este é um número que varia de 0 a
59.

%9 é substituído por "s" se o valor produzido por %8 não é 1.

%0 é substituído por "s" se o valor produzido por %7 não é 1.

%! é substituído por "é" se a hora atual for anterior ao AT tempo, ou "era" se for
depois de.

%@ é similar a %2 mas exibe a hora atual.

%# é similar a %3 mas exibe a hora atual.

%" (percent-doublequote - ") é removido. Esta sequência não é usada pelo
filtro de substituição, mas é usado para dizer lembrar qual texto incluir em um calendário
entrada quando o -c, -s or -p opção é escolhida. Veja "Modo Calendário"

Observações:

o lembrar normalmente imprime uma linha em branco após cada lembrete; se o último personagem de
o corpo é "%", a linha em branco não será impressa.

o As substituições a, b, c, e, f, g, h, i, j, k, l, u e v todas são substituídas por
"hoje" se a data atual for igual à data do acionador ou "amanhã" se o acionador
data é um dia após a data atual. Assim, eles são não a mesma
substituições construídas a partir das sequências% w,% y, etc. mais simples.

o Qualquer uma das substituições que lidam com o tempo (0 a 9 e '!') produzem indefinido
resultados se usados ​​em um lembrete que não tem um AT palavra-chave. Além disso, se um
lembrete tem um delta e pode ser acionado em vários dias, as substituições de tempo
ignore a data. Assim, o %1 substituição pode relatar que uma reunião é em 15
minutos, por exemplo, embora possa ser em apenas 2 dias, porque um delta
acionou o lembrete. Recomenda-se que você use as substituições de tempo
apenas em lembretes cronometrados sem delta que são projetados para serem enfileirados por tempo
ativação.

o Letras maiúsculas podem ser usadas na sequência de substituição, caso em que a primeira
caractere da string substituída é maiúscula (se for normalmente uma minúscula
carta.)

o Todos os outros caracteres após o sinal "%" são simplesmente copiados. Em particular, para obter
um "%" saia, use "%%" no corpo. Para começar o corpo de um lembrete com um
espaço, use "%", uma vez que lembrar normalmente procura o primeiro caractere sem espaço
depois de um MSG, CAL or CORRE símbolo.

A OMITIR COMANDO


Além de ser uma palavra-chave no REM comando, OMITIR é um comando por si só.
Sua sintaxe é:

OMITIR dia mês [ano]

ou:

OMITIR day1 mês 1 year1 ATRAVÉS day2 mês 2 year2

A OMITIR O comando é usado para omitir "globalmente" certos dias (geralmente feriados). Esses
os dias omitidos globalmente são ignorados pelas formas "-" e "+" de em caminho duplo e delta. Alguns
exemplos:

OMIT 1 de janeiro
OMIT 7 de setembro de 1992

O primeiro exemplo especifica um feriado que ocorre na mesma data a cada ano - Ano Novo
Dia. O segundo exemplo especifica um feriado que muda a cada ano - Dia do Trabalho. Para
esses tipos de feriados, você deve criar um OMITIR comando para cada ano. (Mais tarde, no
descrição de expressões e alguns dos recursos mais avançados de lembrar, você verá
como automatizar isso para alguns casos.)

Tal como acontece com o comando REM, você pode usar especificadores abreviados para datas; os seguintes são
equivalente:

OMIT 7 de setembro de 1992
OMIT 1992/09/07

Por conveniência, você pode usar um delta e MSG or CORRE palavra-chave no OMITIR comando. o
as seguintes sequências são equivalentes:

OMIT 1 de janeiro
REM 1 jan +4 MSG O dia de ano novo é% b!

e

OMIT 1 jan +4 MSG O dia de ano novo é% b!

A ATRAVÉS A palavra-chave permite OITAR convenientemente um intervalo de dias. O começo e o fim
os pontos devem ser totalmente especificados (ou seja, devem incluir dia, mês e ano). Por exemplo,
as seguintes sequências são equivalentes:

OMIT 3 de janeiro de 2011
OMIT 4 de janeiro de 2011
OMIT 5 de janeiro de 2011

e

OMIT 3 de janeiro de 2011 ATÉ 5 de janeiro de 2011

Você pode fazer um THROUGH OMITIR fazer dupla função como um REM comando:

OMIT, 6 de setembro de 2010, ATÉ 10 de setembro de 2010, férias MSG

Você pode depurar seus OMITs globais com o seguinte comando:

OMITIR DESCARGA

O comando OMIT DUMP imprime as omissões globais atuais na saída padrão.

A ANTES, APÓS E PULAR CHAVES

Normalmente, os dias que são omitidos, seja por um global OMITIR comando ou o local OMITIR or
OMITFUNC palavras-chave em um REM declaração, afetam apenas a contagem de -em caminho duplo ou o +delta.
Por exemplo, suponha que você tenha uma reunião todas as quartas-feiras. Suponha, também, que você tenha
indicou 11 de novembro como feriado:

OMIT 11 de novembro + 4 Dia da Memória do MSG
REM Quarta +1 Reunião de código MSG% b.

A seqüência acima emitirá um lembrete sobre uma reunião em 11 de novembro de 1992, que é um
Quarta-feira. Isso provavelmente está incorreto. Existem três opções:

ANTES Esta palavra-chave move o lembrete para antes de qualquer dia omitido. Assim, no acima
exemplo, uso de ANTES faria com que o lembrete de reunião fosse acionado na terça-feira,
10 novembro 1992.

APÓS Esta palavra-chave move o lembrete para após qualquer dia omitido. No exemplo acima,
o lembrete da reunião seria acionado na quinta-feira, 12 de novembro de 1992.

PULAR Esta palavra-chave faz com que o lembrete seja totalmente ignorado em qualquer dia omitido.
Assim, no exemplo acima, o lembrete não seria acionado em 11 de novembro
1992. No entanto, seria acionado como de costume na quarta-feira seguinte, 18
Novembro 1992.

A ANTES e APÓS palavras-chave movem a data de acionamento de um lembrete para antes ou depois de um
bloco de dias omitidos, respectivamente. Suponha que você normalmente executa um backup no primeiro dia
do mês. No entanto, se o primeiro dia do mês for um fim de semana ou feriado, você executa o
backup no primeiro dia útil após o fim de semana ou feriado. Você pode usar:

REM 1 OMIT Sáb Dom APÓS A EXECUÇÃO do_backup

Vamos examinar como a data de disparo é calculada. o 1 especifica o primeiro dia do
mês. O local OMITIR palavra-chave faz com que o APÓS palavra-chave para avançar o lembrete
finais de semana. finalmente, o APÓS a palavra-chave continuará avançando o lembrete até que tenha
passou em qualquer feriado especificado com global OMITIR comandos.

A INCLUIR COMANDO


lembrar permite que você inclua outros arquivos em seu script de lembrete, semelhante ao C
pré-processador #include diretiva. Por exemplo, o administrador do sistema pode manter um
arquivo de feriados ou lembretes de todo o sistema. Você pode incluí-los em seu script de lembrete
como se segue:

INCLUIR / usr / compartilhar / lembrar / feriados
INCLUIR / usr / compartilhar / lembrar / lembretes

(Os nomes dos caminhos reais variam de sistema para sistema - pergunte ao administrador do sistema.)

INCLUIR os arquivos podem ser aninhados até uma profundidade de 8.

Se você especificar um nome de arquivo "-" no INCLUIR comando, lembrar vai começar a ler de
entrada padrão.

Se você especificar um anuário como o argumento para INCLUIR, Em seguida lembrar irá processar todos os arquivos
nesse diretório que corresponde ao padrão do shell "* .rem". Os arquivos são processados ​​em ordem
pedido; a ordem de classificação corresponde à usada pelo shell quando ele expande "* .rem".

A CORRE COMANDO


Se você incluir outros arquivos em seu script de lembrete, nem sempre pode confiar inteiramente no
conteúdo dos outros arquivos. Por exemplo, eles podem conter CORRE-tipo lembretes que poderiam
ser usado para acessar seus arquivos ou realizar ações indesejadas. o CORRE comando pode restringir
este: Se você incluir o comando CORRE OFF em seu script de lembrete de nível superior, qualquer lembrete
ou a expressão que normalmente executaria um comando do sistema está desativada. CORRE ON vai voltar
habilitar a execução de comandos do sistema. Observe que o CORRE ON comando pode ser usado em
seu script de lembrete de nível superior; será não trabalhar em qualquer arquivo acessado pelo INCLUIR
comando. Isso é para protegê-lo de alguém colocar um CORRE ON comando em um incluído
Arquivo. No entanto, o CORRE OFF comando pode ser usado no nível superior ou em um arquivo incluído.

Se você correr lembrar com o -r opção de linha de comando, CORRE-tipo lembretes e o Concha()
função será desabilitada, independentemente de qualquer CORRE comandos no script de lembrete.
No entanto, qualquer comando fornecido com o -k opção ainda será executada.

Um uso do CORRE comando é fornecer uma interface segura entre lembrar e os votos de olmo
sistema de correio. o olmo sistema pode verificar automaticamente os e-mails recebidos em busca de lembretes ou calendário
entradas e coloque-as em seu arquivo de calendário. Para usar este recurso, você deve definir o
opção de nome de arquivo do calendário em olmo ser algo como "~ / .reminders.in", não seu principal
arquivo de lembrete! Isso é para que qualquer CORRE ON comandos enviados para você nunca podem ser ativados.

Então, você pode usar o olmo digitalização mensagem for calendário entradas comando para colocar lembretes
precedido por "->" em .reminders.in. Em seu arquivo principal .reminders, inclua o seguinte
linhas:

RUN OFF # Desativar RUN
INCLUIR .reminders.in
RUN ON # Reativar RUN

Além disso, lembrar contém alguns outros recursos de segurança. Não vai ler um arquivo que
é gravável em grupo ou em todo o mundo. Ele não executará set-uid. Se ler um arquivo que você não possui,
ele desabilitará RUN e a função shell (). E se for executado como raiz, só vai ler
arquivos pertencentes a raiz.

A BANDEIRA COMANDO


Quando lembrar primeiro emite um lembrete, ele imprime uma mensagem como esta:

Lembretes para sexta-feira, 30 de outubro de 1992 (hoje):

(O banner não é impresso se qualquer uma das opções de produção de calendário for usada, ou se o -k
opção é usada.)

A BANDEIRA comando permite alterar o formato. Deve aparecer antes de qualquer REM comandos.
O formato é:

BANDEIRA formato

A formato é semelhante ao corpo de uma REM comando. É passado pela substituição
filtro, com um acionador implícito da data atual do sistema. Assim, o banner padrão é
equivalente a:

Lembretes BANNER para% w,% d% s% m,% y% o:

Você pode desativar o banner completamente com BANNER%. Ou você pode criar um banner personalizado:

BANNER Olá - aqui estão seus lembretes para% y-% t-% r:

CONTROLANDO A OMITIR CONTEXTO


Às vezes, é necessário alterar temporariamente o global OMITIR que estão em vigor por um
alguns lembretes. Três comandos permitem que você faça isso:

PUSH-OMITIR-CONTEXTO
Este comando salva o atual global OMITIR em uma pilha interna.

CLARO-OMITIR-CONTEXTO
Este comando limpa todos os globais OMITIR, começando do zero.

POP-OMIT-CONTEXTO
Este comando restaura o global OMITIR que foram salvos pelo mais recente EMPURRE-
OMITIR-CONTEXTO.

Por exemplo, suponha que você tenha um bloco de lembretes que exigem um aviso claro OMITIR contexto, e
que eles também introduzem indesejáveis OMITIR isso pode interferir em lembretes posteriores.
Você pode usar o seguinte fragmento:

PUSH-OMIT-CONTEXT # Salvar o contexto atual
CLEAR-OMIT-CONTEXT # Limpar a lousa
# Bloco de lembretes vai aqui
POP-OMIT-CONTEXT # Restaura o contexto de omissão salvo

EXPRESSÕES


Em certos contextos, a serem descritos posteriormente, lembrar aceitará expressões para avaliação.
lembrar expressões se assemelham a expressões C, mas operam em diferentes tipos de objetos.

DADOS TIPOS

lembrar expressões operam em cinco tipos de objetos:

INT A INT o tipo de dados consiste nos inteiros representáveis ​​em uma palavra de máquina. o
INT tipo de dados corresponde ao tipo C "int".

STRING A STRING tipo de dados consiste em cadeias de caracteres. É algo comparável
a uma matriz de caracteres C, mas se assemelha mais ao tipo de string em BASIC.

TIME A TIME tipo de dados consiste em horas do dia. o TIME tipo de dados é internamente
armazenado como um número inteiro que representa o número de minutos desde a meia-noite.

INFORMAÇÃO A INFORMAÇÃO o tipo de dados consiste em datas (posteriores a 1º de janeiro de 1990). Internamente, INFORMAÇÃO
os objetos são armazenados como o número de dias desde 1º de janeiro de 1990.

DATETIME
A DATETIME tipo de dados consiste em uma data e hora juntas. Internamente, DATETIME
objetos são armazenados como o número de minutos desde a meia-noite de 1 ° de janeiro de 1990. Você
posso pensar em um DATETIME objeto como sendo a combinação de INFORMAÇÃO e TIME partes.

CONSTANTES

Os exemplos a seguir ilustram constantes em lembrar expressões:

INT constante
12, 36, -10, 0, 1209

STRING constante
"Olá", "Isto é um teste", "\ n \ gosd \ w", ""

Observe que a string vazia é representada por "", e as barras invertidas em uma string
e guarante que os mesmos estão não interpretados especialmente, como em eles estão em C.

TIME constante
12:33, 0:01, 14:15, 16:42, 12.16, 13.00, 1.11

Observe que TIME constantes são escritas no formato de 24 horas. O ponto ou dois pontos
pode ser usado para separar os minutos das horas. No entanto, Remind irá
tempos de saída consistentemente usando apenas um caractere separador. (A saída
o caractere separador é escolhido em tempo de compilação.)

INFORMAÇÃO constante
INFORMAÇÃO constantes são expressas como 'aaaa / mm / dd' ou 'aaaa-mm-dd', e as aspas simples
devo ser fornecido. Isso distingue constantes de data de divisão ou subtração
de inteiros. Exemplos:

´1993/02/22', '1992-12-25', '1999/01/01'

Observe que INFORMAÇÃO valores são impresso sem as aspas. Embora '-' ou '/'
é aceito como separador de data na entrada, quando as datas são impressas, apenas uma será
usado. A escolha de usar '-' ou '/' é feita em tempo de compilação. Observe também
aquelas versões de lembrar antes de 03.00.01 não suportava constantes de data. Naqueles
versões, você deve criar datas usando o data() função. Além disso, as versões anteriores a
03.00.02 não suportava o separador de data '-'.

DATETIME constante
DATETIME constantes são expressas de forma semelhante a INFORMAÇÃO constantes com a adição de
uma parte "@HH: MM". Por exemplo:

´2008-04-05@23:11', '1999/02/03@14:06', '2001-04-07@08:30'

DATETIME os valores são impressos sem as aspas. Notas sobre data e hora
caracteres separadores para INFORMAÇÃO e TIME constantes também se aplicam a DATETIME constantes.

OPERADORES

lembrar tem os seguintes operadores. Operadores na mesma linha têm precedência igual,
enquanto os operadores nas linhas mais baixas têm precedência mais baixa do que aqueles nas linhas mais altas. o
os operadores correspondem aproximadamente aos operadores C.

! - (negação lógica unária e negação aritmética)
* /%
+ -
<<=>> =
==! =
&&
||

DESCRIÇÃO OF OPERADORES

! Negação lógica. Pode ser aplicado a um INT modelo. Se o operando for diferente de zero,
retorna zero. Caso contrário, retorna 1.

- Menos unário. Pode ser aplicado a um INT. Retorna o negativo do operando.

* Multiplicação. Retorna o produto de dois INTs.

/ Divisão inteira. Retorna o quociente de dois INTs, descartando o restante.

% Módulo. Retorna o resto ao dividir um INT por outro.

+ Tem vários usos. Estes são:

INT + INT - retorna a soma de dois INTs.

INT + TIME or TIME + INT - retorna um TIME obtido pela adição INT minutos para o
original TIME.

INT + INFORMAÇÃO or INFORMAÇÃO + INT - retorna um INFORMAÇÃO obtido pela adição INT dias para o
original INFORMAÇÃO.

INT + DATETIME or DATETIME + INT - retorna um DATETIME obtido pela adição INT
minutos para o original DATETIME.

STRING + STRING - retorna um STRING essa é a concatenação dos dois originais
STRINGs.

STRING + qualquer coisa ou qualquer coisa + STRING - converte o nãoSTRING argumento para um
STRINGe, em seguida, executa a concatenação. Veja o coagir() função.

- Tem vários usos. Estes são:

INT - INT - retorna a diferença de dois INTs.

INFORMAÇÃO - INFORMAÇÃO - retorna (como um INT) a diferença em dias entre dois INFORMAÇÃOs.

TIME - TIME - retorna (como um INT) a diferença em minutos entre dois TIMEs.

DATETIME - DATETIME - retorna (como um INT) a diferença em minutos entre dois
DATETIMEs.

INFORMAÇÃO - INT - retorna um INFORMAÇÃO isso é INT dias antes do original INFORMAÇÃO.

TIME - INT - retorna um TIME isso é INT minutos antes do original TIME.

DATETIME - INT - retorna um DATETIME isso é INT minutos antes do original
DATETIME.

<, <=, >, e >=
Estes são os operadores de comparação. Eles podem aceitar operandos de qualquer tipo, mas ambos
operandos devem ser do mesmo tipo. Os operadores de comparação retornam 1 se o
a comparação é verdadeira ou 0 se for falsa. Observe que a comparação de strings é feita
seguindo a ordem lexical de caracteres em seu sistema, e que superior e
letra minúscula e guarante que os mesmos estão distinto para esses operadores.

==, != == testa a igualdade, retornando 1 se seus operandos forem iguais e 0 se forem
não. ! = testa a desigualdade.

Se os operandos não forem do mesmo tipo, == retorna 0 e! = Retorna 1. Novamente,
as comparações de strings diferenciam maiúsculas de minúsculas.

&& Este é o operador lógico AND. Ambos os operandos devem ser do tipo INT. Ele
retorna 1 se ambos os operandos forem diferentes de zero e 0 caso contrário.

|| Este é o operador lógico OU. Ambos os operandos devem ser do tipo INT. Ele
retorna 1 se qualquer operando for diferente de zero e 0 caso contrário.

NOTAS

Operadores de igual precedência são sempre avaliado da esquerda para a direita, exceto onde
os parênteses indicam o contrário. Isso é importante, porque o operador "+" aprimorado é
não necessariamente associativo. Por exemplo:

1 + 2 + "string" + 3 + 4 resulta em "3string34"
1 + (2 + "string") + (3 + 4) produz "12string7"
12:59 + 1 + "teste" produz "13:00 teste"
12:59 + (1 + "teste") produz "12: 591 teste"

Os operadores lógicos são não os chamados operadores de curto-circuito, pois estão em C. Ambos
operandos são sempre avaliados. Assim, uma expressão como:

(f! = 0) && (100 / f <= 3)

causará um erro se f for zero.

VARIÁVEIS

lembrar permite que você atribua valores às variáveis. o SET comando é usado da seguinte forma:

SET var expr

var é o nome de uma variável. Deve começar com uma letra ou sublinhado e consistir
apenas de letras, dígitos e sublinhados. Apenas os primeiros 12 caracteres de um nome de variável
são significativos. Nomes de variáveis ​​são não maiúsculas e Minúsculas; assim, "Afoo" e "afOo" são os
mesma variável. Exemplos:

DEFINIR a 10 + (9 * 8)
SET b "Isto é um teste"
SET mydir getenv ("HOME")
AJUSTAR hora 12:15
AJUSTE a data hoje ()

Observe que as variáveis ​​em si não têm tipo. Eles assumem o tipo de tudo o que você armazena
neles.

Para excluir uma variável, use o UNSET comando:

UNSET var [var...]

Por exemplo, para excluir todas as variáveis ​​declaradas acima, use:

UNSET ab mydir time date

SISTEMA VARIÁVEIS

Além das variáveis ​​de usuário regulares, lembrar tem várias "variáveis ​​de sistema" que são
usado para consultar ou controlar o estado operacional de lembrar. Variáveis ​​do sistema estão disponíveis
a partir da versão 03.00.07 de lembrar.

Todas as variáveis ​​do sistema começam com um cifrão '$'. Eles podem ser usados ​​em SET comandos e
expressões assim como as variáveis ​​regulares podem. Todas as variáveis ​​do sistema sempre contêm valores de um
tipo especificado. Além disso, algumas variáveis ​​do sistema não podem ser modificadas e você não pode
criar novas variáveis ​​de sistema. As variáveis ​​do sistema podem ser inicializadas na linha de comando com
da -i opção, mas você pode precisar citá-los para evitar que o shell interprete o
cifrão. Os nomes das variáveis ​​do sistema não diferenciam maiúsculas de minúsculas.

As seguintes variáveis ​​de sistema são definidas. Aqueles marcados como "somente leitura" não podem ser alterados
com o SET comando. Todas as variáveis ​​do sistema contêm valores do tipo INT, a menos que de outra forma
Especificadas.

$ CalcUTC
Se 1 (o padrão), então lembrar usa funções da biblioteca C para calcular o número de
minutos entre a hora local e a hora universal coordenada. Isso afeta astronômicos
cálculos (nascer do sol() por exemplo.) Se 0, você deve fornecer o número de
minutos entre o horário local e universal coordenado no $ MinsFromUTC .
variável.

$CalMode (somente leitura)
Se diferente de zero, então o -c opção foi fornecida na linha de comando.

$ Daemon (somente leitura)
Se o modo daemon -z foi invocado, contém o número de minutos entre as ativações.
Se não estiver executando no modo daemon, contém 0.

$ DateSep
Esta variável pode ser definida apenas para "/" ou "-". Ele contém o personagem usado para
partes separadas de uma data quando lembrar imprime um valor DATE ou DATETIME.

$ DefaultPrio
A prioridade padrão atribuída a lembretes sem um PRIORIDADE cláusula. Você pode definir
isso conforme necessário para ajustar as prioridades dos blocos de lembretes sem ter que
digite prioridades para lembretes individuais. Na inicialização, $ DefaultPrio é definido como 5000;
pode variar de 0 a 9999.

$ DontFork (somente leitura)
Se diferente de zero, então o -c opção foi fornecida na linha de comando.

$ DontTrigAts (somente leitura)
O número de vezes que o -a opção foi fornecida na linha de comando.

$ DontQueue (somente leitura)
Se diferente de zero, então o -q opção foi fornecida na linha de comando.

$ EndSent (FRAGMENTO tipo)
Contém uma lista de personagens que terminam uma frase. o MSF palavra-chave insere dois
espaços após esses caracteres. Inicialmente, $ EndSent está configurado para ".!?" (período,
ponto de exclamação e ponto de interrogação.)

$ EndSentIg (FRAGMENTO tipo)
Contém uma lista de caracteres que devem ser ignorados quando MSF decide se ou
não colocar dois espaços após uma frase. Inicialmente, é definido como "'>)]}" +CARACTERES(34)
(aspas simples, maior que, parêntese direito, colchete direito, chave direita e
citação dupla.)

Por exemplo, os valores padrão funcionam da seguinte maneira:

MSF Ele disse: "Huh! (Dois espaços virão depois disso.)" Sim.

porque o parêntese final e aspas são ignorados (para fins de espaçamento)
quando eles seguem um período.

$ FirstIndent
O número de espaços pelos quais recuar a primeira linha de um MSF-tipo lembrete. o
o padrão é 0.

$ FoldYear
As funções da biblioteca padrão do Unix podem ter dificuldade em lidar com datas posteriores
de 2037. Se esta variável for definida como 1, os cálculos UTC "dobram para trás"
anos depois de 2037 antes de usar as funções da biblioteca Unix. Por exemplo, para
descobrir se o horário de verão está em vigor ou não em junho de 2077, o ano
é "dobrado" para 2010, porque ambos os anos começam em uma segunda-feira, e ambos não são
leapyears. As regras para o horário de verão são, portanto, consideradas idênticas
para ambos os anos, e as funções da biblioteca Unix podem lidar com 2010. Por padrão, este
variável é 0. Defina-o como 1 se as funções sol ou UTC se comportarem mal por anos a mais
que 2037.

$ FormWidth
A largura máxima de cada linha de texto para formatação MSF-tipo lembretes. o
o padrão é 72. Se um MSF-tipo lembrete contém uma palavra muito longa para caber neste
largura, não será truncado - o limite de largura será ignorado.

$ HushMode (somente leitura)
Se diferente de zero, então o -h opção foi fornecida na linha de comando.

$ IgnoreOnce (somente leitura)
Se diferente de zero, então o -o opção foi fornecida na linha de comando, ou uma data
diferente da data real de hoje foi fornecida. Se diferente de zero, então UMA VEZ directivas
será ignorado.

$ InfDelta (somente leitura)
Se diferente de zero, então o -t opção foi fornecida na linha de comando.

$ LatDeg, $ LatMin, $ LatSec
Eles especificam a latitude de sua localização. $ LatDeg pode variar de -90 a 90, e
os outros de -59 a 59. As latitudes do norte são positivas; os do sul são
negativo. Para latitudes ao sul, todos os três componentes devem ser negativos.

$Localização (FRAGMENTO tipo)
Esta é uma string que especifica o nome do seu local. Geralmente é o nome de
sua cidade ou cidade. Pode ser definido como você quiser, mas um bom estilo indica
que deve ser mantido consistente com as variáveis ​​do sistema de latitude e longitude.

$ LongDeg, $ LongMin, $ LongSec
Eles especificam a longitude de sua localização. $ LongDeg pode variar de -180 a 180.
As longitudes ocidentais são positivas; os orientais são negativos. Observe que todos os três
componentes devem ter o mesmo sinal: Todos positivos para longitudes ocidentais e todos
negativo para longitudes orientais.

As informações de latitude e longitude são necessárias para as funções nascer do sol() e
pôr do sol(). Os valores padrão podem ser compilados em lembrar, ou você pode SET o correto
valores no início de seus scripts de lembrete.

$ MaxSatIter
O número máximo de iterações para o SATISFAZER cláusula (descrita posteriormente.) Deve ser
pelo menos 10.

$ MinsFromUTC
O número de minutos entre a hora universal coordenada e a hora local. Se
$ CalcUTC é diferente de zero, isso é calculado na inicialização do lembrar. Caso contrário, você
deve defini-lo explicitamente. Se $ CalcUTC é zero então $ MinsFromUTC é usado no
cálculos astronômicos. Você mesmo deve ajustá-lo para o horário de verão.
Além disso, se você deseja inicializar $ MinsFromUTC usando o -i opção de linha de comando, você
também deve definir $ CalcUTC para 0 com o -i opção.

$ NextMode (somente leitura)
Se diferente de zero, então o -n opção foi fornecida na linha de comando.

$ NumQueued (somente leitura)
Contém o número de lembretes enfileirados até agora para acionamento cronometrado em segundo plano.

$ NumTrig (somente leitura)
Contém o número de lembretes acionados para a data atual. Um uso para isso
variável é a seguinte: Suponha que você deseja sombrear na caixa de um PostScript
calendário sempre que um feriado é acionado. Você poderia salvar o valor de $ NumTrig in
uma variável regular antes de executar um bloco de lembretes de feriado. Se o valor
of $ NumTrig depois que o bloco de feriado for maior do que o valor salvo, então pelo menos
um feriado foi acionado e você pode executar o comando para sombrear no calendário
caixa. (Consulte a seção "Modo Calendário".)

Observe que $ NumTrig é afetado by REM comandos; dispara em IFTRIG comandos fazem
não afetá-lo.

$ PrefixLineNo (somente leitura)
Se diferente de zero, então o -l opção foi fornecida na linha de comando.

$ PSCal (somente leitura)
Se diferente de zero, então o -p opção foi fornecida na linha de comando.

$ RunOff (somente leitura)
Se diferente de zero, o CORRE as diretivas estão desabilitadas.

$ SimpleCal (somente leitura)
Defina para um valor diferente de zero se ou que acontecerá no marco da -p or -s as opções de linha de comando eram
fornecido.

$ SortByDate (somente leitura)
Defina como 0 se não -g opção é usada, 1 se classificar por data em ordem crescente, ou 2 se
classificação por data em ordem decrescente.

$ SortByPrio (somente leitura)
Defina como 0 se não -g opção é usada, 1 se classificar por prioridade em ordem crescente, ou 2
se estiver classificando por prioridade em ordem decrescente.

$ SortByTime (somente leitura)
Defina como 0 se não -g opção é usada, 1 se classificar por tempo em ordem crescente, ou 2 se
classificação por tempo em ordem decrescente.

$ SubsIndent
O número de espaços em que todas as linhas (exceto a primeira) de um MSF-tipo de lembrete
deve ser recuado. O padrão é 0.

$T (somente leitura, INFORMAÇÃO tipo)
Exatamente equivalente a trigdate (). (Consulte FUNÇÕES INTEGRADAS.)

$ Td (somente leitura)
Equivalente a dia (trigada ()).

$ Tm (somente leitura)
Equivalente a monnum (trigdate ()).

$Tw (somente leitura)
Equivalente a wkdaynum (trigdate ()).

$ Ty (somente leitura)
Equivalente a ano (trigado ()).

$ TimeSep
Esta variável pode ser definida apenas para ":" ou ".". Ele contém o personagem usado para
porções separadas de um tempo quando lembrar imprime um valor TIME ou DATETIME.

$ UntimedFirst (somente leitura)
Defina como 1 se o -g opção é usada com um quarto caractere de classificação de "d"; definido como 0
de outra forma.

$U (somente leitura, INFORMAÇÃO tipo)
Exatamente equivalente a hoje(). (Consulte FUNÇÕES INTEGRADAS.)

$ Ud (somente leitura)
Equivalente a dia a dia()).

$ Um (somente leitura)
Equivalente a monnum (hoje ()).

$ Uw (somente leitura)
Equivalente a wkdaynum (hoje ()).

$ Uy (somente leitura)
Equivalente a ano para dia()).

Nota: Se algum dos modos de calendário estiver em vigor, os valores de $Daemon, $DontFork,
$ DontTrigAts, $ DontQueue, $ HushMode, $ IgnoreOnce, $ InfDelta e $ NextMode não são
significativo.

CONSTRUÍDAS EM FUNÇÕES

lembrar tem uma infinidade de funções integradas. A sintaxe para uma chamada de função é a mesma
como em C - o nome da função, seguido de uma lista de argumentos separados por vírgulas entre parênteses.
Os nomes das funções não diferenciam maiúsculas de minúsculas. Se uma função não aceita argumentos, deve ser
seguido por "()" na chamada de função. De outra forma, lembrar irá interpretá-lo como uma variável
nome e provavelmente não funciona corretamente.

Nas descrições abaixo, formas curtas são usadas para denotar tipos aceitáveis ​​para o
argumentos. Os caracteres "i", "s", "d", "t" e "q" denotam INT, STRING, INFORMAÇÃO, TIME e
DATETIME argumentos, respectivamente. Se um argumento pode ser de vários tipos, o
os caracteres são concatenados. Por exemplo, "di_arg" denota um argumento que pode ser um INFORMAÇÃO
ou um INT. "x_arg" denota um argumento que pode ser de qualquer tipo. O tipo de argumento
é seguido por um sublinhado e um identificador que nomeia o argumento.

As funções integradas são:

abs (i_num)
Retorna o valor absoluto de Números.

acessar (s_file, si_mode)
Testa as permissões de acesso para o arquivo lima. Moda pode ser uma string, contendo um
mistura dos caracteres "rwx" para teste de permissão de leitura, gravação e execução.
Alternativamente, modo pode ser um número conforme descrito no UNIX Acesso(2) chamada de sistema.
A função retorna 0 se o arquivo pode ser acessado com o especificado modo, e 1
de outra forma.

args (s_fname)
Retorna o número de argumentos esperados pela função definida pelo usuário nome, ou -1
se nenhuma função definida pelo usuário existir. Observe que esta função examina apenas
funções definidas pelo usuário, não funções internas. Seu principal uso é determinar
se uma função definida pelo usuário em particular foi ou não definida anteriormente. o
args () função está disponível apenas em versões de lembrar a partir das 03.00.04.

asc (s_string)
Retorna um INT esse é o código ASCII do primeiro caractere em corda. Como
caso especial, asc ("") retorna 0.

baseyr ()
Retorna o "ano base" que foi compilado em lembrar (normalmente 1990.) Todas as datas
são armazenados internamente como o número de dias desde 1º de janeiro de baseyr ().

char (i_i1 [, i_i2 ...])
Esta função pode levar qualquer número de INT argumentos. Retorna um STRING consistindo
dos caracteres especificados pelos argumentos. Observe que nenhum dos argumentos pode
seja 0, a menos que haja apenas um argumento. Como um caso especial, carbonizar(0) retorna "".

Observe que porque lembrar não suporta escape de caracteres em strings, o
única maneira de obter aspas duplas em uma string é usar carbonizar(34).

escolha (i_index, x_arg1 [, x_arg2 ...])
Escolha deve ter pelo menos dois argumentos, o primeiro dos quais é um INT. Se índice is
n, Em seguida, o no argumento subsequente é retornado. Se índice é menor que 1, então
argumento1 é devolvido. Se índice é maior do que o número de argumentos subsequentes,
então, o último argumento é retornado. Exemplos:

escolha (0, "foo", 1: 13, 1000) retorna "foo"
escolha (1, "foo", 1: 13, 1000) retorna "foo"
escolha (2, "foo", 1: 13, 1000) retorna 1:13
escolha (3, "foo", 1: 13, 1000) retorna 1000
escolha (4, "foo", 1: 13, 1000) retorna 1000
Observe que todos os argumentos para escolher() e guarante que os mesmos estão sempre avaliado.

coagir (s_type, x_arg)
Esta função converte arg à especificada tipo, se tal conversão for possível.
Formato deve ser um de "INT", "STRING", "DATE", "TIME" ou "DATETIME" (case-
insensível). As regras de conversão são as seguintes:

If arg já é do tipo especificado, ele é retornado inalterado.

If tipo é "STRING", então arg é convertido em uma string que consiste em seu impresso
representação.

If tipo é "DATE", então um INT arg é convertido interpretando-o como o número de
dias desde 1 de janeiro baseyr (). UMA STRING arg é convertido ao tentar lê-lo
como se fosse uma data impressa. UMA DATETIME é convertido em uma data eliminando o
componente de tempo. UMA TIME arg não pode ser convertido em uma data.

If tipo é "TIME", então um INT arg é convertido interpretando-o como o número de
minutos desde a meia-noite. UMA STRING arg é convertido ao tentar lê-lo como se
era uma hora impressa. UMA DATETIME é convertido para uma hora ao eliminar a data
componente. UMA INFORMAÇÃO arg não pode ser convertido em hora.

If tipo é "DATETIME", então um INT arg é convertido ao interpretá-lo como o
número de minutos desde a meia-noite de 1 ° de janeiro baseyr (). UMA STRING é convertido por
tentando lê-lo como se fosse uma data e hora impressa. Outros tipos não podem ser
convertido em uma data e hora.

If tipo é "INT", então INFORMAÇÃO, TIME e DATETIME argumentos são convertidos usando o
reverso dos procedimentos descritos acima. UMA STRING arg é convertido analisando-o como
um inteiro.

atual()
Retorna a data e hora atuais como um objeto DATETIME. Este pode ser o real
data e hora, ou pode ser a data e hora fornecidas na linha de comando.

data (i_y, Eu estou, Eu iria)
A data() função retorna um INFORMAÇÃO objeto com os componentes ano, mês e dia
especificado por y, m e d.

parte da data (dq_datetime)
Retorna um INFORMAÇÃO objeto que representa a parte da data de datetime.

datetime (args)
A data hora () A função pode ter de dois a cinco argumentos. É sempre
retorna um DATETIME gerado a partir de seus argumentos.

Se você fornecer dois argumentos, o primeiro deve ser DATA e o segundo, HORA.

Se você fornecer três argumentos, o primeiro deve ser uma DATA e o segundo e o terceiro
deve ser INTs. O segundo e terceiro argumentos são interpretados como horas e minutos
e convertido para TIME.

Se você fornecer quatro argumentos, os três primeiros devem ser INTs, interpretados como o
ano, mês e dia. O quarto argumento deve ser um TIME.

Finalmente, se você fornecer cinco argumentos, todos eles devem ser INTs e são interpretados como
ano, mês, dia, hora e minuto.

amanhecer([dq_date])
Retorna a hora do "amanhecer civil" no especificado dados. Se dados é omitido,
o padrão é hoje(). Se um datetime objeto é fornecido, apenas o componente de data é
usava.

dia (dq_date)
Esta função leva um INFORMAÇÃO or DATETIME como um argumento, e retorna um INT isso é
o componente do dia do mês de dados.

daysinmon (i_m, eu_y)
Retorna o número de dias do mês m (1-12) do ano y.

definido (s_var)
Retorna 1 se a variável nomeada por var está definido ou 0 se não estiver.
Observe que definiram() Leva um STRING argumento; assim, para verificar se a variável X é
definido, use:

definido ("X")

e não:

definido (X)

O segundo exemplo tentará avaliar X e retornará um erro se for
indefinido ou não do tipo STRING.

dosubst (s_str [, d_date [, t_time]]) or dosubst (s_str [, q_datetime])
Retorna um STRING que é o resultado de passar str através do filtro de substituição
descrito anteriormente. Os parametros dados e tempo (ou datetime) estabelecer o
data e hora de acionamento efetivo usado pelo filtro de substituição. Se dados e tempo
são omitidos, o padrão é hoje() e agora().

Note que se str não termina com "%", um caractere de nova linha será adicionado ao
fim do resultado. Além disso, ligando dosubst () com uma dados que está no passado (ou seja,
if dados < hoje()) produzirá resultados indefinidos.

Dosubst () só está disponível a partir da versão 03.00.04 de lembrar.

crepúsculo ([dq_date])
Retorna a hora do "crepúsculo civil" no especificado dados. Se dados é omitido,
o padrão é hoje().

easterdate (dqi_arg)
If arg é um INT, em seguida, retorna a data do Domingo de Páscoa para o ano especificado.
If arg é um INFORMAÇÃO or DATETIME, então retorna a data do próximo Domingo de Páscoa em ou
depois de arg. (O componente de tempo de uma data e hora é ignorado.)

evaltrig (s_trigger [, dq_start])
Avalia desencadear como se fosse uma especificação de gatilho REM ou IFTRIG e retorna
a data de ativação como um INFORMAÇÃO (ou como um DATETIME se houver um AT cláusula.) Retorna um
negativo INT se nenhum gatilho puder ser calculado.

Normalmente, avaliar encontra uma data de acionamento em ou depois de hoje. Se você fornecer o começo
argumento, então ele faz a varredura começando a partir daí.

Por exemplo, a expressão:

evaltrig ("Seg 1", '2008/10/07')

retorna '2008-11-03', uma vez que é a primeira data em ou após 7 de outubro de 2008 que
satisfaz "Mon 1".

Se você quiser ver quantos dias são desde a primeira segunda-feira de outubro de 2008 até
na primeira segunda-feira de novembro de 2008, use:

evaltrig ("Mon 1", '2008-11-01') - evaltrig ("Mon 1", '2008-10-01')

e a resposta é 28. O argumento disparador para avaliar pode ter todo o usual
cláusulas de gatilho (OMITIR, AT, PULAR, etc.) mas não podes têm um SATISFAZER, MSG, etc.
cláusula do tipo lembrete.

filedate (s_filename)
Retorna a data de modificação de nome do arquivo. Se nome do arquivo não existe, ou seu
a data de modificação é antes do ano baseyr (), então 1 ° de janeiro de baseyr () is
devolvida.

filedatetime (s_filename)
Retorna a data e hora de modificação de nome do arquivo. Se nome do arquivo não existe, ou
sua data de modificação é antes do ano baseyr (), depois à meia-noite, 1 ° de janeiro de
baseyr () é devolvido.

filedir ()
Retorna o diretório que contém o arquivo atual sendo processado. Pode ser um
nome de caminho relativo ou absoluto, mas é garantido como correto para uso em um
INCLUIR comando da seguinte forma:

INCLUIR [filedir ()] / coisas

Isso inclui o arquivo "coisas" no mesmo diretório que o arquivo atual que está sendo
processado.

nome do arquivo()
Retorna (como um STRING) o nome do arquivo atual sendo processado por lembrar.
Dentro dos arquivos incluídos, retorna o nome do arquivo incluído.

getenv (s_envvar)
Semelhante ao getenv(2) chamada de sistema. Retorna uma string que representa o valor de
a variável de ambiente especificada. Retorna "" se a variável de ambiente não for
definiram. Observe que os nomes das variáveis ​​de ambiente são geralmente case-
confidencial; portanto, getenv ("HOME") não é o mesmo que getenv ("home").

hebdate (i_day, Shebmon [, idq_yrstart [, i_jahr [, i_aflag]]])
Suporte para datas em hebraico - consulte a seção "O calendário hebraico"

hebday (dq_date)
Suporte para datas em hebraico - consulte a seção "O calendário hebraico"

hebmon (dq_date)
Suporte para datas em hebraico - consulte a seção "O calendário hebraico"

hebyear (dq_date)
Suporte para datas em hebraico - consulte a seção "O calendário hebraico"

hora (tq_time)
Retorna o componente de hora de tempo.

iif (si_test1, x_arg1, [si_teste2, x_arg2,...], x_padrão)
If test1 não é zero ou a string nula, retorna argumento1. Caso contrário, se test2 não é
zero ou a string nula, retorna argumento2, e assim por diante. Se todo o teste argumentos são
falso, retorna omissão. Observe que todos os argumentos são sempre avaliado. Esse
função aceita um número ímpar de argumentos - observe que antes da versão 03.00.05
of lembrar, aceitou apenas 3 argumentos. A versão de 3 argumentos de iif () is
compatível com versões anteriores de lembrar.

índice (s_search, s_target [,eu começo)
Retorna um INT essa é a localização de alvo na corda search. O primeiro
caractere de uma string é numerado 1. Se alvo não existe em search, então 0 é
devolvida.

O parâmetro opcional começo especifica a posição em search em que começar
procurando por alvo.

isdst([d_data [, t_time]]) or isdst (q_datetime)
Retorna um número positivo se o horário de verão estiver em vigor no período especificado
data e hora. Data o padrão é hoje() e tempo o padrão é meia-noite.

Observe que essa função é tão confiável quanto as funções da biblioteca de tempo de execução C.
Ele está disponível a partir da versão 03.00.07 de lembrar.

isleap (idq_arg)
Retorna 1 se arg é um ano bissexto e 0 caso contrário. Arg pode ser um INT, INFORMAÇÃO or
DATETIME objeto. Se um INFORMAÇÃO or DATETIME é fornecido, então o componente de ano é
usado no teste.

isomitido(dq_date)
Retorna 1 se dados é omitido, dado o atual global OMITIR contexto. Retorna 0
de outra forma. (Se uma data e hora for fornecida, apenas a parte da data será usada.) Observe que qualquer
local OMITIR or OMITFUNC cláusulas são não tidos em consideração por esta função.

língua()
Retorna um STRING nomeando o idioma suportado por lembrar. (Veja "Língua Estrangeira
Suporte. ") Por padrão, lembrar é compilado para suportar mensagens em inglês, então este
função retorna "Inglês". Para outros idiomas, esta função retornará o
Nome do idioma em inglês (por exemplo, "alemão") Observe que língua() não está disponível
em versões de lembrar antes de 03.00.02.

inferior (s_string)
Retorna um STRING com todos os caracteres maiúsculos em corda convertido para minúsculas.

max (x_arg1 [, x_arg2 ...)
Pode receber qualquer número de argumentos e retorna o máximo. Os argumentos podem ser de
qualquer tipo, mas todos devem ser do mesmo tipo. Eles são comparados com o>
operador.

min (x_arg1 [, x_arg2 ...)
Pode receber qualquer número de argumentos e retorna o mínimo. Os argumentos podem ser de
qualquer tipo, mas todos devem ser do mesmo tipo. Eles são comparados com o
operador.

minfromutc ([d_date [, t_time]]) or minfromutc (q_datetime)
Retorna o número de minutos do Universal Time Coordinated (anteriormente GMT) até
hora local na data e hora especificadas. Data o padrão é hoje() e tempo
o padrão é meia-noite. Se a hora local for anterior ao UTC, o resultado será negativo.
Caso contrário, o resultado é positivo.

Observe que essa função é tão confiável quanto as funções da biblioteca de tempo de execução C.
Ele está disponível a partir da versão 03.00.07 de lembrar.

minuto (tq_time)
Retorna o componente minuto de tempo.

seg (dqi_arg)
If arg é de INFORMAÇÃO or DATETIME tipo, retorna uma string que nomeia o componente do mês
da data. Se arg é um INT de 1 a 12, retorna uma string que nomeia o mês.

monnum (dq_date)
Retorna um INT de 1 a 12, representando o componente do mês de dados.

moondate (i_phase [, d_date [, t_time]]) or moondate (i_phase, q_datahora)
Esta função retorna a data da primeira ocorrência da fase fase que acontecerá no marco da
lua na ou depois dados e tempo. Fase pode variar de 0 a 3, com 0 significando novo
lua, 1 lua crescente, 2 lua cheia e 3 lua minguante. Se dados é omitido,
o padrão é hoje(). Se tempo for omitido, o padrão é meia-noite.

Por exemplo, o seguinte retorna a data da próxima lua cheia:

SET lua cheia lua(2)

moontime (i_phase [, d_date [, t_time]]) or moontime (i_phase, q_datahora)
Esta função retorna a hora da primeira ocorrência da fase fase que acontecerá no marco da
lua na ou depois dados e tempo. Fase pode variar de 0 a 3, com 0 significando novo
lua, 1 lua crescente, 2 lua cheia e 3 lua minguante. Se dados é omitido,
o padrão é hoje(). Se tempo for omitido, o padrão é meia-noite. Moontime () is
destinado a ser usado em conjunto com moondate (). O moondate () e moontime ()
funções são precisas em alguns minutos do tempo em "Old Farmer's
Almanaque "para Ottawa, Ontário.

Por exemplo, o seguinte retorna a data e hora da próxima lua cheia:

MSG Próxima lua cheia às [hora da lua(2)] em [lua(2)]

moondatetime (i_phase [, d_date [, t_time]]) or moondatetime (i_phase, q_datahora)
Esta função é semelhante a lua e hora da lua, mas retorna um resultado DATETIME.

fase da lua ([d_date [, t_time]]) or fase da lua (q_datetime)
Esta função retorna a fase da lua em dados e tempo, cujo padrão é
hoje() e meia-noite, respectivamente. O valor retornado é um número inteiro de 0 a
359, representando a fase da lua em graus. 0 é uma lua nova, 180 é uma cheia
lua, 90 é o quarto minguante, etc.

não omitido (dq_start, dq_end [, s_wkday ...])
Esta função retorna o número de não-omitido dias entre começo e final. Se
começo não é omitido, então é contado. final nunca é contado.

Observe que final deve ser maior ou igual a começo ou um erro é relatado. No
Além de usar o contexto global OMIT, você pode fornecer argumentos adicionais que
são nomes de dias da semana a serem omitidos. No entanto, em um REM comando, qualquer local OMITFUNC
cláusula é não tidos em consideração por esta função.

Por exemplo, a linha a seguir define a como 11 (assumindo que não há OMITs globais):

definir um não omitido ('2007-08-01', '2007-08-16', "Sáb", "Dom")

porque quinta-feira, 16 de agosto de 2007 é o 11º dia útil (sem contar sábado e
Domingo) após quarta-feira, 1 de agosto de 2007.

não omitido tem vários usos. Por exemplo, muitas escolas funcionam em um ciclo de seis dias e
o número do dia não é incrementado nos feriados. Suponha que o ano letivo comece com
Dia 1 em 4 de setembro de 2007. O seguinte lembrete rotulará os números dos dias em um
calendário:

SE hoje ()> = '2007-09-04'
definir daynum não omitido ('2007-09-04', hoje (), "Sáb", "Sol")
REM OMIT SAT SUN SKIP CAL Dia [(daynum% 6) + 1]
Endif

Obviamente, a resposta que você obtém de não omitido depende do contexto OMIT global.
Se você usar OMITs móveis, poderá obter resultados inconsistentes.

Aqui está um uso mais complexo para não omitido. Minha coleta de lixo segue dois
ciclos intercalados de 14 dias: Uma sexta-feira, reciclagem de lixo e papel ("Caixa Preta")
são coletados. Na próxima sexta-feira, a reciclagem de lixo e plástico ("Caixa Azul") é
coletados. Se qualquer dia de segunda a sexta for feriado, a coleta será adiada até o
Sábado. Esta é uma maneira de codificar essas regras:

fset _garbhol (x) wkdaynum (x) == 5 && não omitido (x-4, x + 1) <5
REM 12 de novembro de 1999 * 14 APÓS OMITFUNC _garbhol MSG Black Box
REM 19 de novembro de 1999 * 14 APÓS OMITFUNC _garbhol MSG Blue Box

Veja como funciona: A função definida pelo usuário _garbhol (x) retorna 1 se e somente
se (1) x é uma sexta-feira e (2) há pelo menos um dia OMITIDO do anterior
De segunda a sexta, inclusive.

A primeira instrução REM configura o ciclo da caixa preta de 14 dias. A palavra-chave AFTER
faz com que a coleção seja movida para o sábado se _garbhol retornar 1. O segundo REM
declaração configura o ciclo de caixa azul de 14 dias com um ajuste semelhante feito por AFTER
em conjunto com _garbhol.

agora() Retorna a hora atual do sistema, como um TIME modelo. Esta pode ser a hora real ou um
tempo fornecido na linha de comando.

ord (i_num)
Retorna uma string que é o número ordinal Números. Por exemplo, a palavras(2) Retorna
“2ª”, e palavras(213) retorna "213º".

ostype ()
Retorna "UNIX". O Lembrete costumava ser executado no OS / 2 e no MS-DOS, mas não funciona mais.

plural (i_num [, s_str1 [, s_str2]])
Pode levar de um a três argumentos. Se um argumento for fornecido, retorna "s" se
Números não é 1, e "" se Números é 1.

Se dois argumentos forem fornecidos, retorna str1 + "s" se Números não é 1. Caso contrário,
Retorna str1.

Se três argumentos forem fornecidos, retorna str1 if Números é 1, e str2 de outra forma.

psmoon (i_phase [, i_size [, s_note [, i_notesize]]])
[DEPRECATED] Retorna um STRING consistindo em código PostScript para desenhar uma lua no
canto superior esquerdo da caixa do calendário. Fase especifica a fase da lua,
e é 0 (lua nova), 1 (primeiro quarto minguante), 2 (lua cheia) ou 3 (terceiro quarto). Se
tamanho for especificado, ele controla o raio da lua em unidades PostScript (1/72
polegadas.) Se não for especificado ou for negativo, o tamanho da fonte do número do dia é
usava.

Por exemplo, as quatro linhas a seguir colocam os símbolos da lua no PostScript
calendário:

REM[lua(0)] PS [lua cheia(0)]
REM[lua(1)] PS [lua cheia(1)]
REM[lua(2)] PS [lua cheia(2)]
REM[lua(3)] PS [lua cheia(3)]

If nota for especificado, o texto é usado para anotar a exibição da lua. A fonte é
a mesma fonte usada para entradas de calendário. Se tamanho da nota é dado, especifica o
tamanho da fonte a ser usado para a anotação, em unidades PostScript (1/72 polegada). tamanho da nota
não for fornecido, o padrão é o tamanho usado para entradas de calendário. (Se você anotar
a exibição, tome cuidado para não substituir o número do dia - lembrar não verifica
para isso.) Por exemplo, se quiser que a hora de cada lua nova seja exibida, você pode
use isso em seu script de lembrete:

REM[lua(0)] PS [psmoon (0, -1, hora da lua(0) + "")]

Observe como o tempo é forçado a uma string concatenando a string nula.

psshade (i_gray) or psshade (i_red, i_verde, i_azul)
[DEPRECATED] Retorna um STRING que consiste em comandos PostScript para sombrear um
caixa de calendário. Num pode variar de 0 (completamente preto) a 100 (completamente branco).
Se três argumentos são fornecidos, eles especificam intensidade de vermelho, verde e azul de 0 a
100. Aqui está um exemplo de como usar isso:

REM Sáb Dom PS [sombra(95)]

O comando acima emite código PostScript para sombrear levemente as caixas para sábado e
Domingo em um calendário PostScript.

Observe que lua cheia e sombra estão obsoletos; em vez disso, você deve usar o SPECIAL
Lembretes SHADE e LUA ESPECIAL conforme descritos em "Lembretes fora de banda".

realcurrent ()
Retorna (como DATETIME) a ​​verdadeira data e hora do dia, conforme fornecido pela operação
sistema. Isso está em contraste com atual(), que pode retornar uma hora fornecida no
linha de comando.

realnow ()
Retorna a hora verdadeira do dia conforme fornecida pelo sistema operacional. Isto está em
contrasta com agora(), que pode retornar um horário fornecido na linha de comando.

realtoday ()
Retorna a data conforme fornecida pelo sistema operacional. Isso está em contraste com
lembraro conceito de "hoje", que pode ser alterado se estiver em execução no calendário
modo, ou se uma data foi fornecida na linha de comando.

sgn (i_num)
Retorna -1 se Números é negativo, 1 se Números é positivo e 0 se Números é zero.

shell (s_cmd [, i_maxlen])
Executa cmd como um comando do sistema e retorna os primeiros 511 caracteres de saída
resultado de cmd. Qualquer caractere de espaço em branco na saída é convertido em um
espaço. Observe que se CORRE OFF foi executado, ou o -r opção de linha de comando tem
sido usado, Concha() resultará em um erro, e cmd não será executado.

If maxlen é especificado, então Concha() retorna o primeiro maxlen caracteres de saída
(em vez dos primeiros 511). Se maxlen é especificado como um número negativo, então todos os
a saída de cmd é devolvido.

slide (d_start, eu sou t [, s_wkday ...])
Esta função é o inverso de não omitido. Acrescenta amt dias (que podem ser
negativo) para começo, não contando omitidos dias. O opcional semana argumentos são
nomes adicionais dos dias da semana a serem omitidos.

Considere este exemplo:

OMIT 14 de maio de 2009
AJUSTE um slide ('2009/05/13', 5, "Sáb", "Sol")

Neste caso, a está definido para 2009/05/21. Isso porque avançamos 5 dias,
não incluindo quinta-feira, 14 de maio ou sábado e domingo, 16 e 17 de maio. Você pode ir
para trás também, então:

OMIT 14 de maio de 2009
AJUSTE um slide ('2009-05-21', -5, "Sáb", "Sol")

toma a de volta a 2009/05/13.

strlen (s_str)
Retorna o comprimento de str.

substr (s_str, eu começo [, i_end])
Retorna um STRING consistindo em todos os personagens em str da começo até e incluindo
final. Os caracteres são numerados de 1. Se final não é fornecido, o padrão é
o comprimento de str.

nascer do sol ([dq_date])
Retorna um TIME indicando a hora do nascer do sol no dados (padrão
hoje().) Em altas latitudes, pode não haver nascer do sol em um determinado dia, no qual
casas nascer do sol() retorna o INT 0 se o sol nunca se põe ou 1440 se nunca nasce.

pôr do sol ([dq_date])
Retorna um TIME indicando a hora do pôr do sol no dados (padrão
hoje().) Em altas latitudes, pode não haver pôr do sol em um determinado dia, no qual
casas pôr do sol() retorna o INT 0 se o sol nunca nasce ou 1440 se nunca se põe.

As funções nascer do sol() e pôr do sol() são baseados em um algoritmo em "Almanaque para
Computadores para o ano de 1978" por LE Doggett, Nautical Almanac Office, USNO. Eles
exigem que a latitude e a longitude sejam especificadas, definindo o apropriado
variáveis ​​do sistema. (Consulte "Variáveis ​​do sistema".) As funções do sol devem ser precisas
dentro de cerca de 4 minutos para latitudes inferiores a 60 graus. As funções são
disponível a partir da versão 03.00.07 de lembrar.

tempo (i_hr, estou dentro)
Cria um TIME com os componentes de hora e minuto especificados por hr e minutos.

parte do tempo (tq_datetime)
Retorna um TIME objeto que representa a parte do tempo de datetime.

hoje()
Returns lembrara noção de "hoje". Pode ser a data real do sistema ou uma data
fornecido na linha de comando, ou a data da entrada do calendário que está sendo
computado.

trigdate ()
Retorna a data de disparo calculada da última REM or IFTRIG comando. Se usado em
da corpo de uma REM comando, retorna a data de disparo desse comando. Se o mais recente
REM comando não produziu uma data de disparo computável, retorna o inteiro 0.

trigdatetime ()
Semelhante a trigdate (), mas retorna um DATETIME se o gatilho mais recente REM
comando tinha um AT cláusula. Se não houvesse AT cláusula, retorna um INFORMAÇÃO. Se não
o gatilho pode ser calculado, retorna o inteiro 0.

gatilho (d_date [, t_time [, i_utcflag]]) or gatilho (q_datetime [, i_utcflag])
Retorna uma string adequada para uso em um REM comando ou uma cláusula SCANFROM ou UNTIL,
permitindo que você calcule as datas de gatilho com antecedência. Observe que nas versões anteriores
of lembrar, desencadear foi necessário para converter uma data em algo que REM comando
poderia consumir. No entanto, nesta versão do lembrar, você pode omiti-lo. Observe que
desencadear() sempre retorna seu resultado em inglês, mesmo para versões em idioma estrangeiro
of lembrar. Isso é para evitar problemas com certas bibliotecas C que não lidam com
caracteres acentuados corretamente. Normalmente, o dados e tempo são a data local e
Tempo; entretanto, se utcflag é diferente de zero, o dados e tempo são interpretados como UTC
horas e são convertidos para a hora local. Exemplos:

gatilho ('1993/04/01')

retorna "1 de abril de 1993",

trigger('1994/08/09', 12:33)

retorna "9 de agosto de 1994 AT 12:33", assim como:

trigger('1994/08/09@12:33').

Finalmente:

trigger('1994/12/01', 03:00, 1)

retorna "30 de novembro de 1994 AT 22:00" para EST, que é 5 horas antes do UTC. o
o valor para o seu fuso horário pode ser diferente.

trigtime ()
Retorna a hora do último REM comando com um AT cláusula. Se o último REM fez
não tem um AT cláusula, retorna o inteiro 0.

trigvalid ()
Retorna 1 se o valor retornado por trigdate () é válido para o mais recente REM
comando, ou 0 caso contrário. As vezes REM comandos não podem calcular uma data de disparo.
Por exemplo, o seguinte REM o comando nunca pode ser acionado:

REM Seg OMIT Seg SKIP MSG Impossível!

typeof (x_arg)
Retorna "STRING", "INT", "DATE", "TIME" ou "DATETIME", dependendo do tipo de
arg.

tzconvert (q_datetime, s_srczone [, s_dstzone])
Converte datetime do fuso horário nomeado por zona de origem para o fuso horário nomeado por
zona dst. Se zona dst for omitido, o fuso horário padrão do sistema será usado. O retorno
o valor é DATETIME. Os nomes dos fusos horários dependem do sistema; consulte seu funcionamento
sistema de valores legais. Aqui está um exemplo:

tzconvert('2007-07-08@01:14', "Canada/Eastern", "Canada/Pacific")

Retorna

2007-07-07@22:14

superior (s_string)
Retorna um STRING com todos os caracteres minúsculos em corda convertido para maiúsculas.

valor (s_varname [, x_default])
Retorna o valor da variável especificada. Por exemplo, o valor ("X" + "Y") retorna
o valor da variável XY, se estiver definida. Se XY não for definido, um erro
resultados.

No entanto, se você fornecer um segundo argumento, ele será retornado se o nome da var não é
definiram. O valor da expressão ("XY", 0) retornará 0 se XY não for definido, e o
valor de XY se estiver definido.

versão()
Retorna uma string especificando a versão de lembrar. Para a versão 03.00.04, retorna
"03.00.04". É garantido que, como novas versões do lembrar são lançados, o
valor retornado por versão() aumentará estritamente, de acordo com as regras para
ordenação de cordas.

weekno ([dq_date, [i_wkstart, [i_início do dia]]])
Retorna o número da semana do ano. Se nenhum argumento for fornecido, retorna o ISO
8601 número da semana para hoje(). Se um argumento dados é fornecido, em seguida, retorna o
Número da semana ISO 8601 para essa data. Se dois argumentos forem fornecidos, então início de semana
deve variar de 0 a 6 e representa o primeiro dia da semana (sendo 0
Domingo e 6 sendo sábado.). Se início de semana não for fornecido, o padrão é 1.
Se o terceiro argumento início do dia é fornecido e especifica quando a semana 1 começa.
If início do dia é menor ou igual a 7, então a Semana 1 começa no primeiro início de semana on
ou depois de janeiro início do dia. Caso contrário, a semana 1 começa no primeiro início de semana em ou
depois de dezembro início do dia. Se omitido, início do dia o padrão é 29 (seguindo o ISO
Definição 8601.)

wkday (dqi_arg)
If arg é um INFORMAÇÃO or DATETIME, retorna uma string que representa o dia da semana de
a data. Se arg é um INT de 0 a 6, retorna o dia da semana correspondente
("Domingo" a "Sábado").

wkdaynum (dq_date)
Retorna um número de 0 a 6 que representa o dia da semana do especificado dados.
(0 representa domingo e 6 representa sábado.)

ano (dq_date)
Retorna um INT esse é o componente de ano de dados.

EXPRESSÃO PASTANDO


Um recurso extremamente poderoso do lembrar é sua capacidade de macro, ou "colagem de expressão".

Em quase qualquer situação onde lembrar não está esperando uma expressão, você pode "colar" um
expressão em. Para fazer isso, coloque a expressão entre colchetes. Por exemplo:

REM [minha data] MSG foo

Isso avalia a expressão "mydate", onde "mydate" é presumivelmente algum pré-calculado
variável e, em seguida, "cola" o resultado na linha de comando para o analisador processar.

Uma descrição formal disso é: Quando lembrar encontra uma expressão "colada",
avalia a expressão e força o resultado a um STRING. Em seguida, substitui o
string para a expressão colada e continua a análise. Observe, no entanto, que
expressões são avaliadas apenas uma vez, não recursivamente. Assim, escrevendo:

["[a+b]"]

causas lembrar para ler o token "[a + b]". Ele não interpreta isso como um colado
expressão. Na verdade, a única maneira de inserir um colchete esquerdo literal em um lembrete é usar
["["].

Você pode usar a colagem de expressão em quase qualquer lugar. No entanto, existem algumas exceções:

o se lembrar está esperando uma expressão, como no SET comando, ou o IF comando, você
rede de apoio social não incluem colchetes. Por exemplo, use:

DEFINIR um 4 + 5
e não:
DEFINIR a [4 + 5]

o Você não pode usar colagem de expressão para o primeiro token em uma linha. Por exemplo, o
o seguinte não funcionará:

["SET"] a 1

Essa restrição é porque lembrar deve ser capaz de determinar inequivocamente o
primeiro token de uma linha para os comandos de controle de fluxo (a ser discutido mais tarde).

Na verdade, se lembrar não pode determinar o primeiro token em uma linha, ele assume que
é um REM comando. Se a colagem de expressão for usada, lembrar assume que é um REM
comando. Assim, os três comandos a seguir são equivalentes:

REM 12 de novembro de 1993 ÀS 13:05 MSG BOO!
12 de novembro de 1993 às 13h05 MSG BOO!
[12] ["novembro" + 1993] AT [12: 05 + 60] MSG BOO!

o Você não pode usar colagem de expressão para determinar o tipo (MSG, CAL, etc.) de um REM
comando. Você pode colar expressões antes e depois do MSGetc palavras-chave, mas
não posso fazer algo assim:

REM ["12 de novembro de 1993 às 13:05" + "MSG" + "BOO!"]

COMUM ARMADILHAS IN EXPRESSÃO PASTANDO

Lembre-se, ao colar em expressões, que espaços extras não são inseridos. Assim,
algo como:

REM [expr] MSG [expr]

provavelmente irá falhar.

Se você usar uma expressão para calcular um delta or em caminho duplo, certifique-se de que o resultado seja um
número positivo. Algo como:

REM + [mydelta] 12 de novembro de 1993 MSG foo

vai falhar se meudelta passa a ser negativo.

FLUXO CONTROLE COMANDOS


lembrar possui comandos que controlam o fluxo de um script de lembrete. Normalmente, lembrete
os scripts são processados ​​sequencialmente. Contudo, IF e comandos relacionados permitem que você processe
arquivos condicionalmente e pule as seções que você não deseja interpretar.

A IF COMANDO

A IF comando tem o seguinte formato:

SE expr
comando t
comando t ...
ELSE
comando f
f-comando ...
Endif

Observe que os comandos são mostrados recuados para maior clareza. Também o ELSE porção pode ser
omitido. IF comandos podem ser aninhados até um pequeno limite, provavelmente em torno de 8 ou 16 níveis de
aninhamento, dependendo do seu sistema.

Se o expr avalia para um diferente de zero INT, ou um não nulo STRING, Em seguida, o IF porção é
considerado verdadeiro, e o comandos t são executados. Se expr avalia como zero ou nulo, então
da comandos f (se o ELSE parte está presente) são executados. Se expr não é do tipo INT
or STRING, então é um erro.

Exemplos:

IF definido ("want_hols")
INCLUIR / usr / compartilhar / lembrar / feriados
Endif

SE hoje ()> '1992/2/10'
set miss_ap "Você perdeu!"
ELSE
set miss_ap "Ainda tenho tempo ..."
Endif

A IFTRIG COMANDO

A IFTRIG comando é semelhante a um IF comando, exceto que ele calcula um gatilho (como em
da REM comando), e avalia como verdadeiro se um correspondente REM o comando seria acionado.
Exemplos:

IFTRIG 1 de novembro
; Executado em 1 de novembro
ELSE
; Executado exceto em 1 de novembro
Endif

IFTRIG 1 -1 OMIT Sáb Dom +4
; Executado no último dia útil do mês,
; e os 4 dias úteis anteriores
ELSE
; Executado exceto nos dias acima
Endif

Observe que o IFTRIG comando calcula uma data de gatilho, que pode ser recuperada com o
trigdate () função. Você pode usar todos os componentes normais de gatilho, como ATÉ,
deltaetc no IFTRIG comando.

USUÁRIO DEFINIDO FUNÇÕES


Além das funções integradas, lembrar permite que você defina suas próprias funções.
A FSET comando faz isso por você:

FSET nome(args) expr

Fnome é o nome da função e segue a convenção para nomear variáveis. argumentos
é uma lista de argumentos separados por vírgulas e expr é uma expressão. argumentos pode estar vazio, em
caso em que você define uma função sem parâmetros. aqui estão alguns exemplos:

FSET duplo (x) 2 * x
FSET dif. Ano (data1, data2) ano (data1) - ano (data2)
FSET desde (x) ord (ano (trigdata ()) - x)

A última função é útil em lembretes de aniversário. Por exemplo:

REM 1 de novembro +12 MSG Dean's [desde(1984)] aniversário é% b.

Dean nasceu em 1984. O exemplo acima, em 1 de novembro de 1992, seria impresso:

O aniversário de 8 anos de Dean é hoje.

Observações:

o Se você acessar uma variável em expr que não está na lista de argumentos, o "global"
valor (se houver) é usado.

o Os nomes de funções e parâmetros são significativos apenas para 12 caracteres.

o o valor() função sempre acessa o valor "global" de uma variável, mesmo que
tem o mesmo nome de um argumento. Por exemplo:

fset func (x) value ("x")
definir x 1
definir y função(5)

A sequência acima define y como 1, que é o valor global de x.

o As funções definidas pelo usuário podem chamar outras funções, incluindo outras funções definidas pelo usuário
funções. No entanto, chamadas recursivas não são permitidas.

o As funções definidas pelo usuário não são verificadas pela sintaxe quando são definidas; análise ocorre
apenas quando eles são chamados.

o Se uma função definida pelo usuário tiver o mesmo nome de uma função embutida, ela será ignorada
e a função embutida é usada. Para evitar conflitos com versões futuras de
lembrar (o que pode definir mais funções integradas), você pode desejar nomear todos os usuários
funções definidas começando com um sublinhado.

PRECISO AGENDAMENTO


A WARN palavra-chave permite controle preciso sobre o aviso prévio de uma maneira mais flexível
que o delta mecanismo. Deve ser seguido pelo nome de uma função definida pelo usuário,
função_aviso.

Se um função_aviso é fornecido, então ele deve ter um argumento do tipo INT. lembrar
ignora qualquer delta e, em vez disso, chama função_aviso sucessivamente com os argumentos 1, 2,
3, ...

Função_avisovalor de retorno de n é interpretado da seguinte forma:

o se n for positivo, então o lembrete é acionado exatamente n dias antes de seu gatilho
data.

o se n é negativo, então é acionado n dias antes de sua data de ativação, não contando
OMITIRdias ted.

Por exemplo, suponha que você deseja ser avisado do Dia da Independência Americana 5, 3 e 1 dias
antecipadamente. Você pode usar isto:

FSET _wfun (x) escolha (x, 5, 3, 1, 0)
REM 4 de julho WARN _wfun MSG Dia da Independência Americana é% b.

NOTAS

1 Se ocorrer um erro durante a avaliação de função_aviso, Em seguida lembrar pára
chamá-lo e simplesmente emite o lembrete na data de acionamento.

2 Se os valores absolutos dos valores de retorno de função_aviso não são monotonicamente
diminuindo, lembrar para de chamá-lo e emite o lembrete na data de acionamento.

3 Função_aviso deve (por uma questão de bom estilo) retornar 0 como o valor final em seu
sequência de valores de retorno. No entanto, um lembrete irá sempre ser acionado em seu
data de gatilho, independentemente do que função_aviso faz.

similarmente a WARN, CALENDÁRIO palavra-chave permite controle preciso sobre o agendamento de
lembretes. Deve ser seguido pelo nome de uma função definida pelo usuário, função_sched.

Se uma função de agendamento for fornecida, ela deve ter um argumento do tipo INT. Em vez
do que usar o AT hora, hora delta, e tempo repetir, lembrar chama a função de agendamento
para determinar quando acionar o lembrete. Na primeira vez que o lembrete é colocado na fila, o
a função de agendamento é chamada com um argumento de 1. Cada vez que o lembrete é acionado,
ele é reprogramado chamando a função de agendamento novamente. Em cada chamada, o argumento
é incrementado em um.

O valor de retorno da função de programação deve ser um INT ou um TIME. Se o valor de retorno
é um TIME, o lembrete é enfileirado novamente para ser acionado naquele momento. Se for positivo
número inteiro n, o lembrete é enfileirado novamente para ser acionado no tempo de acionamento anterior mais n
minutos. Finalmente, se for um número inteiro negativo ou zero, o lembrete é reenviado para
desencadear n minutos antes do AT Tempo. Observe que deve haver um AT cláusula para o CALENDÁRIO
cláusula para fazer qualquer coisa.

Aqui está um exemplo:

FSET _sfun (x) escolha (x, -60, 30, 15, 10, 3, 1, 1, 1, 1, 0)
REM ÀS 13:00 SCHED _sfun MSG foo

O lembrete seria acionado primeiro às 13h-00 minutos ou às 60h. Seria o próximo
acionado 30 minutos depois, às 12h30. Em seguida, seria acionado às 12h45, 12h55, 12h58,
12:59, 13:00, 13:01 e 13:02.

NOTAS

1 Se ocorrer um erro durante a avaliação de função_sched, Em seguida lembrar reverte para
usando o AT tempo e o delta e repetir valores e nunca chama função_sched
novamente.

2 Se estiver processando função_sched produz uma hora anterior à hora atual do sistema, é
chamado repetidamente com argumento crescente até que produza um valor maior que ou
igual à hora atual. No entanto, se a sequência de valores calculada durante
a repetição não está estritamente aumentando, então lembrar reverte para o padrão
comportamento e nunca liga função_sched novamente.

3 É perfeitamente possível usar função_sched para continuar acionando um lembrete mesmo após o
AT-Tempo. No entanto, não é possível reagendar um lembrete após a meia-noite - não
cruzamento de limites de data é permitido. Além disso, é bem possível não desencadear
um lembrete no AT hora quando você usa uma função de agendamento. No entanto, se o seu
função de programação é encerrada (pelos motivos 1 e 2) antes do AT tempo do
lembrete isso precisarão ser acionado no AT tempo, porque o processamento normal leva
over.

4 Suas funções de agendamento devem (por uma questão de bom estilo) retornar 0 quando não mais
é necessário agendamento. Veja o exemplo.

5 Todas as funções de agendamento são avaliadas depois de todo o script Remind foi lido
in. Portanto, quaisquer definições de função que estejam em vigor no final do script são
usava.

A SATISFAZER CLÁUSULA


A forma de REM que usos SATISFAZER é como se segue:

REM desencadear SATISFAZER expr

A forma como isso funciona é a seguinte: lembrar primeiro calcula uma data de disparo, no
moda. A seguir, define trigdate () para a data de disparo calculada. Em seguida, avalia
expr. Se o resultado não for a string nula ou zero, o processamento termina. De outra forma, lembrar
calcula a próxima data de disparo e testa novamente expr. Essa iteração continua até expr
é avaliado como diferente de zero ou não nulo, ou até o limite de iteração especificado com o -x
opção de linha de comando é alcançada.

If expr não está satisfeito, então trigvalid () é definido como 0. Caso contrário, trigvalid () está definido para
1. De qualquer forma, nenhuma mensagem de erro é emitida.

Isso é realmente útil apenas se expr envolve uma chamada para o trigdate () função; de outra forma,
expr não vai mudar como lembrar itera.

Um exemplo da utilidade de SATISFAZER: Suponha que você deseja ser avisado todas as sextas-feiras
o 13º. Sua primeira tentativa pode ser:

# ERRADO!
REM Sex 13 +2 MSG Sexta-feira 13 é %b.

Mas isso não vai funcionar. Este lembrete é acionado na primeira sexta-feira em ou após o dia 13 de
cada mês. A maneira de fazer isso é com uma sequência mais complicada:

REM 13 SATISFY wkdaynum(trigdate()) == 5
SE trigválido()
REM [trigdata()] +2 MSG \
Sexta-feira 13 é %b.
Endif

Vamos ver como isso funciona. O SATISFAZER cláusula itera através de todos os 13ºs de sucessivos
meses, até encontrar uma data de disparo cujo dia da semana seja sexta-feira (== 5). Se uma data válida
foi encontrado, usamos a data de disparo calculada para configurar o próximo lembrete.

Poderíamos também ter escrito:

REM Sex SATISFY dia(trigdate()) == 13

mas isso resultaria em mais iterações, já que "sextas-feiras" ocorrem com mais frequência do que "13 de
o mês."

Essa técnica de usar um REM comando para calcular uma data de disparo a ser usada por outro
comando é bastante poderoso. Por exemplo, suponha que você queira OMITIR o dia do trabalho, que é
primeira segunda-feira de setembro. Você poderia usar:

# Nota: SATISFY 1 é uma expressão idiomática para "não fazer nada"
REM Seg 1 Set SATISFY 1
OMITIR [trigdata()]

EMBARGO: Esta omite o Próximo Dia do Trabalho, nem todos os Dias do Trabalho no futuro. Isto
pode causar resultados estranhos, pois o OMITIR contexto pode mudar dependendo da data atual.
Por exemplo, se você usar o seguinte comando após os comandos acima:

REM Seg APÓS msg Olá

o resultado não será o esperado. Considere produzir um calendário para setembro de 1992.
O Dia do Trabalho foi na segunda-feira, 7 de setembro de 1992. No entanto, quando lembrar dá a volta para
calculando o gatilho para terça-feira, 8 de setembro de 1992, o OMITIR comando agora será
omitindo o Dia do Trabalho para 1993, e o comando "Mon AFTER" não será acionado. (Mas veja
a descrição de Digitalizar a partir na seção "Detalhes sobre Computação de Gatilho.")

Provavelmente é melhor ficar longe da computação OMITIR datas de disparo, a menos que você mantenha essas
armadilhas em mente.

Para versões de lembrar a partir de 03.00.07, você pode incluir um MSG, CORRE, etc. cláusula em
a SATISFAZER cláusula da seguinte forma:

REM trigger_stuff SATISFY [expr] corpo MSG

Observe que, apenas para este caso, o expr depois de SATISFAZER devo estar entre colchetes. Deve
vir depois de todos os outros componentes do gatilho, e imediatamente antes do MSG, CORRE,
etc. palavra-chave. Se expr não puder ser satisfeito, o lembrete não será acionado.

Assim, o exemplo "Sexta-feira 13" pode ser expresso de forma mais compacta como:

REM 13 +2 SATISFY [núm.semana(trigdate()) == 5] \
MSG sexta-feira 13 é %b.

E você pode acionar um lembrete às segundas, quartas e quintas-feiras que ocorrem em dias ímpares.
dias numerados do mês com o seguinte:

REM Seg Qua Qui SATISFY [dia(trigdate())%2] \
GMS Aqui está!!!

Observe que SATISFAZER e OMITFUNC muitas vezes pode ser usado para resolver o mesmo problema, embora em
jeitos diferentes. Às vezes um SATISFAZER é mais limpo e às vezes um OMITFUNC; experimentar e
use o que parecer mais claro.

DEPURAÇÃO LEMBRETE CRITÉRIOS


Embora a linha de comando -d opção é útil para depuração, muitas vezes é um exagero. Por
por exemplo, se você ligar o -dx opção para um arquivo de lembrete com muitas expressões complexas,
você terá uma enorme quantidade de saída. O DEBUG comando permite-lhe controlar a depuração
sinalizadores sob controle do programa. O formato é:

DEBUG [+bandeirante] [-sinalizador]

Bandeira e sinalizador consistem em strings dos caracteres "extvlf" que correspondem ao
opções de depuração discutidas na seção de opções de linha de comando. Se precedido por um "+",
o grupo correspondente de opções de depuração está ligado. Caso contrário, eles são trocados
fora. Por exemplo, você pode usar esta sequência para depurar uma expressão complicada:

DEBUGAR +x
definir um expressão_muito_complexa(muitos_args)
DEBUGAR -x

A DUMPVARES COMANDO

O comando DUMPVARES exibe os valores das variáveis ​​na memória. Seu formato é:

DUMPVARES [var...]

Se você fornecer uma lista de nomes de variáveis ​​separados por espaços, as variáveis ​​correspondentes serão
exibido. Se você não fornecer uma lista de variáveis, todas as variáveis ​​na memória serão
exibido. Para despejar uma variável do sistema, coloque seu nome na lista de variáveis ​​a serem despejadas. Se
você coloca um cifrão solitário na lista de variáveis ​​para despejar, então todas as variáveis ​​do sistema
será despejado.

A ERMSG COMANDO

A ERMSG comando tem o seguinte formato:

ERMSG corpo

A corpo é passado pelo filtro de substituição (com uma data de disparo implícita de
hoje()) e impresso no fluxo de saída de erro. Exemplo:

IF !defined("var_crítico")
ERRMSG Você deve fornecer um valor para "critical_var"
SAIR
Endif

A SAIR COMANDO

O exemplo acima também mostra o uso do SAIR comando. Isso causa uma condição incondicional
sair do processamento de script. Quaisquer lembretes cronometrados enfileirados são descartados. Se você está em
modo de calendário (descrito a seguir), o processamento do calendário é abortado.

Se você fornecer um INT-type expressão após o SAIR comando, ele é retornado ao chamador
programa como o status de saída. Caso contrário, um status de saída de 99 é retornado.

A RUBOR COMANDO

Este comando consiste simplesmente na palavra RUBOR em uma linha por si só. O comando libera
a saída padrão e os fluxos de erro padrão usados ​​por lembrar. Isso não é terrivelmente
útil para a maioria das pessoas, mas pode ser útil se você executar lembrar como um subprocesso de outro
programa e deseja usar pipes para comunicação.

CALENDÁRIO MODA


Se você fornecer o -c, -s or -p opção de linha de comando, então lembrar é executado no "modo de calendário".
Nesse modo, lembrar interpreta o script repetidamente, realizando uma iteração por meio de
todo o arquivo para cada dia no calendário. Os lembretes que acionam são salvos em
buffers e, em seguida, inseridos no calendário nos locais apropriados.

Se você também fornecer o -a opção, então lembrar não incluirá lembretes cronometrados no
calendário.

A -p opção é usada em conjunto com a Rem2PS programa para produzir um calendário em
Formato PostScript. Por exemplo, o comando a seguir enviará o código PostScript para
saída padrão:

lembrar -p .lembretes | rem2ps

Você pode imprimir um calendário PostScript canalizando-o para o lpr comando.

Se você tiver um script de lembrete chamado ".reminders" e executar este comando:

lembrar -c .lembretes janeiro de 1993

então lembrar executa o script 31 vezes, uma vez para cada dia de janeiro. Cada vez que
executa o script, ele incrementa o valor de hoje(). Quaisquer lembretes cuja data de disparo
fósforos hoje() são inseridos no calendário.

MSG e CAL- os lembretes do tipo, por padrão, têm seu corpo inteiro inserido no calendário.
CORRELembretes do tipo não são normalmente inseridos no calendário. No entanto, se você incluir um
parte do corpo na sequência %"...%", apenas essa parte é inserida. Por exemplo,
considere o seguinte:

REM 6 Jan MSG %"Aniversário de Dianne%" é %b

No modo normal, lembrar imprimiria "O aniversário de Dianne é hoje" em 6 de janeiro.
No entanto, no modo calendário, apenas o texto "aniversário de Dianne" é inserido na caixa
para 6 de janeiro.

Se você usar explicitamente a sequência %"...%" em um CORRE-tipo lembrete, então o texto entre
os delimitadores são inseridos no calendário. Se você usar a sequência %"%" em um MSG or
CAL-tipo lembrete, nenhuma entrada de calendário será produzida para esse lembrete.

PRESERVANDO VARIÁVEIS

Porque lembrar itera pelo script para cada dia no calendário, operações lentas
pode reduzir severamente a velocidade de produção de um calendário.

Por exemplo, suponha que você defina as variáveis ​​"me" e "hostname" da seguinte forma:

SET me shell("whoami")
SET nome do host shell("nome do host")

Normalmente, lembrar limpa todas as variáveis ​​entre as iterações no modo de calendário. No entanto, se
certas variáveis ​​são lentas para calcular e não mudam entre as iterações, você pode
"preservar" seus valores com a PRESERVAR comando. Além disso, como as definições de função são
preservados entre as iterações do calendário, não há necessidade de redefini-los em cada
iteração. Assim, você pode usar a seguinte sequência:

E SE ! definido("inicializado")
conjunto inicializado 1
me configure shell("whoami")
set hostname shell("hostname")
fset func(x) expr_complexo
preservar meu nome de host inicializado
Endif

A operação é a seguinte: Na primeira iteração através do script, "inicializado" é
não definido. Assim, os comandos entre IF e Endif são executados. O PRESERVAR comando
garante que os valores de initialized, me e hostname sejam preservados para
iterações. Na próxima iteração, os comandos são ignorados, uma vez que inicializado
permaneceu definido. Assim, operações demoradas que não dependem do valor de
hoje() são feitas apenas uma vez.

As variáveis ​​do sistema (aquelas cujos nomes começam com '$') são preservadas automaticamente entre
iterações do calendário.

Observe que, para eficiência, lembrar armazena em cache o script de lembrete (e qualquer INCLUIRd arquivos) em
memória ao produzir um calendário.

Os lembretes cronometrados são classificados e colocados no calendário em ordem de tempo. Estes são seguidos
por lembretes não cronometrados. lembrar coloca automaticamente a hora dos lembretes cronometrados no
calendário de acordo com o -b opção de linha de comando. Os lembretes no modo de calendário são classificados
como se o -g opção foi usada; você pode alterar a ordem de classificação no modo de calendário
usando explicitamente o -g opção para especificar uma ordem diferente do padrão.

REPETIDO EXECUÇÃO

Se você fornecer um repetir parâmetro na linha de comando e não use o -c, -pou -s
opções, lembrar opera de maneira semelhante ao modo de calendário. Ele executa repetidamente o
script de lembrete, incrementando hoje() com cada iteração. As mesmas regras sobre
a preservação de variáveis ​​e definições de função se aplicam. Observe que usando repetir na
linha de comando também permite a -q opção e desativa qualquer -z opção. Como exemplo, se você
quer ver como lembrar vai se comportar para a próxima semana, você pode digitar:

lembrar .lembretes '*7'

Se você quiser imprimir as datas dos próximos 1000 dias, use:

(echo 'banner %'; echo 'msg [hoje()]%') | lembrar - '*1000'

INICIALIZANDO VARIÁVEIS ON A COMANDO LINHA


A -i opção é usada para inicializar variáveis ​​no lembrar linha de comando. O formato é
-ivar=expr, Onde expr é qualquer expressão válida. Observe que você pode ter que usar aspas ou
escapa para evitar que o shell interprete caracteres especiais em expr. Você pode ter
tantos -i opções como você deseja na linha de comando e elas são processadas em ordem.
Assim, se uma variável é definida em um -i opção, pode ser referido por -i
opções.

Observe que, se você fornecer uma data na linha de comando, ela não será analisada até que todas as opções
foram processados. Assim, se você usar hoje() em qualquer um dos -i expressões, será
retorna o mesmo valor que realtoday () e não a data fornecida na linha de comando.

Quaisquer variáveis ​​definidas na linha de comando são conservado como com o PRESERVAR comando.

Você não deve ter espaços entre as -i opção e o sinal de igual; de outra forma,
são criados nomes de variáveis ​​estranhos que só podem ser acessados ​​com o valor() or definiram()
funções.

Você também pode definir uma função na linha de comando usando:

-ifunção(args)=definição

Certifique-se de proteger os caracteres especiais da interpretação do shell.

MAIS SOBRE(ABOUT) PÓS-ESCRITO


A PS e PSFILE os lembretes passam o código PostScript diretamente para a impressora. Eles diferem em
que o PS-type lembrete passa seu corpo diretamente para a saída PostScript (após
processamento pelo filtro de substituição) enquanto o PSFILEo corpo do tipo deve consistir simplesmente
de um nome de arquivo. O Rem2PS programa irá abrir o arquivo nomeado no PSFILE-tipo lembrete,
e inclua seu conteúdo na saída PostScript.

Os lembretes do tipo PostScript para um dia específico são incluídos na saída PostScript
em ordem ordenada de prioridade. Observe que a ordem dos comandos PostScript tem um principal
impacto na aparência dos calendários. Por exemplo, código PostScript para sombrear um
a caixa de calendário irá apagar o código para desenhar um símbolo da lua se o código do símbolo da lua for colocado
primeiro no calendário. Por esta razão, você não deve fornecer PS or PSFILE-Tipo
lembretes com prioridades; em vez disso, você deve garantir que eles apareçam no lembrete
script na ordem correta. O código PostScript deve desenhar objetos trabalhando a partir do
plano de fundo para o primeiro plano, para que os objetos do primeiro plano sobreponham corretamente os do plano de fundo.
Se você priorizar esses lembretes e executar o script usando a ordem de classificação decrescente para
prioridades, a saída PostScript não funcionará.

Todo o código PostScript para uma data específica é colocado em um salvar-restaurar par.
No entanto, se vários lembretes do tipo PostScript forem acionados para um único dia, cada seção
de PostScript não está incluído em um salvar-restaurar par - em vez disso, todo o corpo de
PostScript incluído é incluído.

Os lembretes do tipo PostScript são executados pela impressora PostScript antes de qualquer
entradas do calendário. Assim, as entradas de calendário regulares irão sobrepor o tipo PostScript
lembretes, permitindo que você crie fundos sombreados ou gráficos para dias específicos.

Antes de executar seu código PostScript, a origem do sistema de coordenadas PostScript é
posicionado no canto inferior esquerdo da "caixa" no calendário que representa
hoje(). Este local é exatamente no meio da interseção do fundo e
esquerda linhas pretas delineando a caixa - você pode ter que levar em conta a espessura dessas
linhas ao calcular as posições.

Várias variáveis ​​PostScript estão disponíveis para o código PostScript fornecido. Tudo
as variáveis ​​de distância e tamanho estão em unidades PostScript (1/72 polegada). As variáveis ​​são:

Espessura da linha
A largura das linhas de grade pretas que constituem o calendário.

Borda A borda entre o centro das linhas de grade e o espaço usado para imprimir
entradas do calendário. Essa borda normalmente é um espaço em branco.

BoxWidth e BoxHeight
A largura e a altura da caixa do calendário, de centro a centro do preto
linhas de grade.

Altura da caixa de entrada
A altura do centro da linha de grade preta inferior ao topo da linha regular
área de entrada do calendário. O espaço daqui até o topo da caixa é usado apenas para
desenhe o número do dia.

/DayFont, /EntryFont, /SmallFont, /TitleFont e /HeadFont
As fontes usadas para desenhar os números dos dias, as entradas do calendário, os pequenos calendários,
o título do calendário (mês, ano) e os títulos do dia da semana, respectivamente.

DaySize, EntrySize, TitleSize e HeadSize
Os tamanhos das fontes acima. (O tamanho da fonte pequena do calendário é não definido
aqui.) Por exemplo, se você quiser imprimir a data hebraica ao lado do dia normal
número no calendário, use:

REM PS Border BoxHeight Border sub DaySize sub moveto \
/ DayFont findfont DaySize scalefont setfont \
([hebday (today ())] [hebmon (today ())]) show

Observe como / DayFont e DaySize são usados.

Observe que se você fornecer o código PostScript, é possível produzir um PostScript inválido
arquivos. Sempre teste seu PostScript completamente com um visualizador de PostScript antes de enviá-lo
para a impressora. Você não deve usar nenhum comentário de estruturação de documento em seu PostScript
código.

DAEMON MODA


Se você usar o -z opção de linha de comando, lembrar é executado no modo "daemon". Neste modo, não
lembretes "normais" são emitidos. Em vez disso, apenas lembretes cronometrados são coletados e enfileirados,
e são emitidos sempre que atingem o seu tempo de disparo.

Além disso, lembrar acorda a cada poucos minutos para verificar a data de modificação no
script de lembrete (o nome do arquivo fornecido na linha de comando.) Se lembrar detecta que o
script foi alterado, ele se reexecuta no modo daemon e interpreta as alterações
script.

No modo daemon, lembrar também relê o script de lembrete quando detecta que o sistema
data mudou.

No modo daemon, lembrar age como se o -f opção foi usada, então para rodar no daemon
modo em segundo plano, use:

lembrar -z .lembretes &

Se você usar sh or bater, você pode ter que usar o comando "nohup" para garantir que o daemon
não é morto quando você faz logout.

PURGA MODA


Se você fornecer o -j opção de linha de comando, lembrar corre em purga modo. Neste modo, ele
tenta limpar lembretes expirados de seus arquivos de lembrete.

No modo de purga, lembrar lê seu arquivo de lembrete e cria um novo arquivo anexando
".purged" para o nome do arquivo original. Observe que lembrar nunca edita seu arquivo original; isto
sempre cria um novo arquivo .purged.

Se você invocar lembrar em um diretório em vez de um arquivo, um arquivo .purged é criado
para cada arquivo *.rem no diretório.

Normalmente, lembrar não cria arquivos .purged para arquivos INCLUÍDOS. No entanto, se você fornecer
um argumento numérico após -j, Em seguida lembrar criará arquivos .purgados para o nível especificado
de INCLUIR. Por exemplo, se você invocar lembrar com o argumento -j2, em seguida, os arquivos .purged
será criado para o arquivo (ou diretório) especificado na linha de comando, quaisquer arquivos
incluídos por eles, e quaisquer arquivos incluídos por esses arquivos. No entanto, os arquivos .purged não serão
ser criado para arquivos INCLUDE de nível terceiro ou superior.

Determinar quais lembretes expiraram é extremamente complicado. lembrar faz o seu melhor, mas
você deve sempre comparar o arquivo .purgado com o arquivo original e mesclar manualmente as alterações
de volta.

Remind anota o arquivo .purged da seguinte forma:

Um lembrete expirado é prefixado com: #!P: Expirado:

Em situações em que lembrar não puder determinar com segurança que algo expirou, você pode
veja os seguintes comentários inseridos antes da linha problemática:

#!P: Não é possível limpar lembretes do tipo SATISFY

#!P: O próximo IF avaliado como falso...
#!P: As instruções REM no bloco IF não foram verificadas para limpeza.

#!P: O IF anterior foi avaliado como verdadeiro.
#!P: instruções REM no bloco ELSE não verificadas para limpeza

#!P: O próximo IFTIG não foi acionado.
#!P: As instruções REM no bloco IFTRIG não foram verificadas para limpeza.

#!P: A próxima linha expirou, mas contém expressão... por favor verifique

#!P: A próxima linha pode ter expirado, mas contém uma expressão não constante

#!P! Não foi possível analisar a próxima linha: Some-Error-Message-Here

lembrar sempre anota arquivos .purged com linhas começando com "#!P". Se tais linhas são
encontrado no original arquivo, eles não são copiados para o arquivo .purged.

ORDENAÇÃO LEMBRETES


A -g opção causa lembrar para classificar lembretes por data de disparo, hora e prioridade antes
emitindo-os. Observe que os lembretes ainda são calculados na ordem encontrada no
roteiro. No entanto, em vez de serem emitidos imediatamente, eles são salvos em um
amortecedor. Quando lembrar terminou de processar o script, ele emite os lembretes salvos em
ordem ordenada. O -g opção pode ser seguida por até quatro caracteres que devem ser todos "a"
ou "d". O primeiro caractere especifica a ordem de classificação por data de disparo (crescente ou
decrescente), o segundo especifica a ordem de classificação por tempo de disparo e o terceiro especifica
a ordem de classificação por prioridade. Se o quarto caractere for "d", os lembretes não cronometrados serão
classificados antes dos lembretes cronometrados. O padrão é classificar todos os campos em ordem crescente e
para classificar lembretes não programados após lembretes programados.

Em ordem crescente, os lembretes são emitidos com o mais iminente primeiro. Ordem decrescente
é o inverso. Os lembretes são sempre ordenados por data de disparo e os lembretes com a mesma
a data de disparo são então classificadas por hora de disparo. Se dois lembretes tiverem a mesma data e
tempo, então a prioridade é usada para desempate. Lembretes com a mesma data, hora e
prioridade são emitidos na ordem em que foram encontrados.

Você pode definir uma função definida pelo usuário chamada SORTBANNER que leva um INFORMAÇÃO-Tipo
argumento. No modo de ordenação, ocorre a seguinte sequência:

If lembrar percebe que o próximo lembrete a ser emitido tem uma data de disparo diferente da
anterior (ou se for o primeiro a ser emitido), então SORTBANNER é chamado com o
data de disparo como seu argumento. O resultado é coagido para uma string e passado pelo
filtro de substituição com a data de disparo apropriada. O resultado é então exibido.

Aqui está um exemplo - considere o seguinte fragmento:

# Desliga o banner normal
BANDEIRA %
REM 11 de março de 1993 ++1 MSG Não tão importante
REM 17 de março de 1993 ++7 MSG Way no futuro
REM 10 de março de 1993 MSG Lembrete Importante
REM 11 de março de 1993 ++1 MSG Não tão importante - B
FSET sortbanner(x) iif(x == hoje(), \
"***** COISAS PARA FAZER HOJE *****", \
"----- Coisas para fazer %b -----")

Executando isso com o -gaa opção em 10 de março de 1993 produz a seguinte saída:

***** COISAS PARA FAZER HOJE *****

Lembrete Importante

----- O que fazer amanhã -----

Não tão importante

Não é tão importante - B

----- Coisas para fazer em 7 dias -----

Caminho no futuro

Você pode usar o args () função interna para determinar se SORTBANNER foi ou não
definiram. (Isso pode ser usado, por exemplo, para fornecer uma definição padrão para SORTBANNER
em um arquivo de todo o sistema incluído no final do arquivo do usuário.) Aqui está um exemplo:

# Crie uma função de classificação padrão se ainda não tiver
# foi definido
if args("sortbanner") != 1
fset sortbanner(x) "--- Coisas para fazer %b ---"
endif

MSGPREFIX() E MSGSUFFIX()


Você pode definir duas funções em seu script chamadas prefixo de mensagem() e sufixo msgs(). Eles
cada um deve aceitar um argumento, um número de 0 a 9999.

No modo normal, para MSG e MSF-tipo lembretes, a seguinte sequência ocorre quando lembrar
aciona um lembrete:

o se prefixo de mensagem() é definido, ele é avaliado com a prioridade do lembrete como sua
argumento. O resultado é impresso. Isto é não passou pela substituição
filtro.

o O corpo do lembrete é impresso.

o se sufixo msgs() é definido, ele é avaliado com a prioridade do lembrete como sua
argumento. O resultado é impresso. Isto é não passou pela substituição
filtro.

Aqui está um exemplo: A definição a seguir faz com que os lembretes de prioridade 0 sejam precedidos por
"URGENTE" e lembretes de prioridade 6000 devem ser precedidos por "(não importante)".

fset msgprefix(x) iif(x==0, "URGENTE: ", \
x==6000, "(não é importante)", "")

No modo de calendário (com o -c, -s or -p opções), um par análogo de funções chamadas
calprefix() e sufixo cal() pode ser definido. Eles trabalham com todos os lembretes que produzem um
entrada no calendário (ou seja, CAL- e possivelmente CORRE-tipo lembretes, bem como MSG-Tipo
lembretes.)

NOTAS

Normalmente, o corpo de um lembrete é seguido por um retorno de carro. Assim, os resultados de
sufixo msgs() aparecerá na próxima linha. Se você não quiser isso, termine o corpo do
lembrete com um sinal de porcentagem, "%". Se você quiser um espaço entre seus lembretes, simplesmente
incluir um retorno de carro (carbonizar(13)) como parte do sufixo msgs() valor de retorno.

If lembrar tem problemas para avaliar prefixo de mensagem(), sufixo msgs() or classificarbanner(), você verá um
muitas mensagens de erro. Para um exemplo disso, defina o seguinte:

fset prefixo de mensagem(x) x/0

ESTRANGEIRO IDIOMA SUPPORT


Sua versão de lembrar pode ter sido compilado para suportar um idioma diferente do inglês.
Este suporte pode ou não ser completo - por exemplo, todas as mensagens de erro e uso podem
ainda estar em inglês. No entanto, no mínimo, as versões em língua estrangeira de lembrar precisarão
nomes de saída de meses e dias da semana no idioma estrangeiro. Também a substituição
mecanismo irá substituir construções adequadas para a língua estrangeira em vez de
Inglês.

Uma versão em língua estrangeira de lembrar aceitará o inglês ou o idioma estrangeiro
nomes de dias da semana e meses em um script de lembrete. No entanto, para compatibilidade entre
versões lembrar, você deve usar apenas os nomes em inglês em seus scripts. Também, se o seu
Compilador C ou bibliotecas de tempo de execução não são "limpas de 8 bits" ou não entendem o ISO-Latin
conjunto de caracteres, nomes de mês ou dia com letras acentuadas podem não ser reconhecidos.

A HEBRAICO CALENDÁRIO


lembrar tem suporte para o calendário hebraico, que é um calendário luni-solar. Isso permite
você para criar lembretes para feriados judaicos, jahrzeits (aniversários de mortes) e
smachot (ocasiões alegres.)

A HEBRAICO ANO

O ano hebraico tem 12 meses, alternadamente 30 e 29 dias de duração. Os meses são: Tishrey,
Heshvan, Kislev, Tevet, Shvat, Adar, Nisan, Iyar, Sivan, Tamuz, Av e Elul. Na Bíblia
vezes, o ano começou em Nisan, mas Rosh Hashana (Ano Novo Judaico) agora é comemorado em
os dias 1 e 2 de Tishrey.

Em um ciclo de 19 anos, há 7 anos bissextos, sendo os anos 3, 6, 8, 11, 14, 17 e 19 de
o ciclo. Em um ano bissexto, um mês extra de 30 dias é adicionado antes de Adar. Os dois Adar
são chamados Adar A e Adar B.

Por certas razões religiosas, o ano não pode começar em um domingo, quarta ou sexta-feira. Para
ajuste para isso, um dia é retirado de Kislev ou adicionado a Heshvan. Assim, um ano normal pode
tem de 353 a 355 dias, e um ano bissexto de 383 a 385.

Quando Kislev ou Heshvan é curto, é chamado caçador, ou ausente. Quando é longo, é
chamado shalem, ou completo.

A data judaica muda ao pôr do sol. Contudo, lembrar mudará a data à meia-noite, não
pôr do sol. Portanto, no período entre o pôr do sol e a meia-noite, o lembrete será um dia antes do
a verdadeira data judaica. Isso não deve ser um grande problema na prática.

Os cálculos para o calendário judaico foram baseados no programa "hdate" escrito por Amos
Shapir da Universidade Hebraica de Jerusalém, Israel. Ele também forneceu o precedente
explicação do calendário.

HEBRAICO INFORMAÇÃO FUNÇÕES

hebday(d_date)
Retorna o dia do mês hebraico correspondente ao dados parâmetro. Por
exemplo, 12 de abril de 1993 corresponde a 21 de nisã de 5753. Assim, hebday('1993/04/12')
retorna 21.

hebmon(d_data)
Retorna o nome do mês hebraico correspondente a dados. Por exemplo, a
hebmon('1993/04/12') retorna "Nisan".

hebyear(d_data)
Retorna o ano hebraico correspondente a dados. Por exemplo, hebyear('1993/04/12')
retorna 5753.

hebdate (i_day, Shebmon [,id_anoinício [, i_jahr [, i_aflag]]])
A hebdata() é a mais complexa das funções de suporte do hebraico. Pode
tomar de 2 a 5 argumentos. Ele retorna um INFORMAÇÃO correspondente à data hebraica.

A dia parâmetro pode variar de 1 a 30, e especifica o dia do hebraico
mês. O hebmon parâmetro é uma string que deve nomear um dos meses hebraicos
especificado acima. Observe que o mês deve ser escrito por extenso e use o
Transliteração em inglês mostrada anteriormente. Você também pode especificar "Adar A" e "Adar
B." Os nomes dos meses não diferenciam maiúsculas de minúsculas.

A início do ano parâmetro pode ser um INFORMAÇÃO ou um INT. Se for um INFORMAÇÃO, Em seguida, o
hebdata() procura a primeira data hebraica nessa data ou depois. Por exemplo:

hebdate(15, "Nisan", '1990/01/01')

retorna 1990/03/30, porque essa é a primeira ocorrência de 15 Nisan em ou após 1
Janeiro 1990.

If início do ano é um INT, é interpretado como um ano hebraico. Por isso:

hebdate(22, "Kislev", 5756)

retorna 1995/12/15, porque essa data corresponde a 22 Kislev, 5756. Observe que
nenhuma das funções de data hebraica funcionará com datas fora Lembrete normal
intervalo para datas.

If início do ano não é fornecido, o padrão é hoje().

A Ano modifica o comportamento de hebdata() como se segue:

If Ano é 0 (o padrão), então hebdata() continua digitalizando até encontrar uma data
que satisfaça exatamente os outros parâmetros. Por exemplo:

hebdate(30, "Adar A", 1993/01/01)

retorna 1995/03/02, correspondente a 30 Adar A, 5755, pois é o próximo
ocorrência de 30 Adar A após 1º de janeiro de 1993. Esse comportamento é apropriado para
Purim Katan, que só aparece em anos bissextos.

If Ano for 1, a data será modificada da seguinte forma:

o 30 Heshvan é convertido em 1 Kislev nos anos em que Heshvan é caçador

o 30 Kislev é convertido em 1 Tevet nos anos em que Kislev é caçador

o 30 Adar A é convertido em 1 Nisan em anos não bissextos

o Outras datas em Adar A são movidas para o dia correspondente em Adar em
anos bissextos

Este comportamento é apropriado para smachot (ocasiões alegres) e para alguns jahrzeits
- ver "JAHRZEITS."

if Ano for 2, a data será modificada da seguinte forma:

o 30 Kislev e 30 Heshvan são convertidos em 29 Kislev e 29 Heshvan,
respectivamente, se o mês for caçador

o 30 Adar A é convertido em 30 Shvat em anos não bissextos

o Outras datas em Adar A são movidas para o dia correspondente em Adar em
anos bissextos

if Ano não é 0, 1 ou 2, é interpretado como um ano hebraico, e o comportamento é
calculado conforme descrito na próxima seção, "JAHRZEITS".

A uma bandeira parâmetro modifica o comportamento da função para datas em Adar durante
anos bissextos. O uma bandeira is usado se início do ano é um INFORMAÇÃO tipo.

A uma bandeira só afeta os cálculos de data se hebmon é especificado como "Adar". Em salto
anos, segue-se o seguinte algoritmo:

o se uma bandeira for 0, a data será acionada em Adar B. Este é o padrão.

o se uma bandeira for 1, a data será acionada em Adar A. Isso pode ser
apropriado para jahrzeits na tradição Ashkenazi; consultar um rabino.

o se uma bandeira for 2, a data será acionada em Adar A e Adar B de um
ano bissexto. Alguns Ashkenazim realizam jahrzeit em Adar A e Adar B.

JAHRZEITS

Um jahrzeit é uma comemoração anual da morte de alguém. Normalmente ocorre no dia
aniversário da morte, mas pode ser adiado se o enterro for atrasado - consulte um rabino para
Mais Informações.

Além disso, como alguns meses mudam de duração, não é óbvio em que dia o
aniversário de uma morte é. As seguintes regras são usadas:

o Se a morte ocorreu em 30 de Heshvan, e Heshvan no ano após a morte é
caçador, então o jahrzeit é observado em 29 Heshvan nos anos em que Heshvan é
caçador. Caso contrário, o yahrzeit é observado em 1 Kislev quando Heshvan é caçador.

o Se a morte ocorreu em 30 de Kislev, e Kislev no ano após a morte é
caçador, então o jahrzeit é observado em 29 Kislev nos anos em que Kislev é caçador.
Caso contrário, o yahrzeit é observado em 1 de Tevet quando Kislev é caçador.

o Se a morte ocorreu em 1-29 de Adar A, é observada em 1-29 de Adar em anos não bissextos.

o Se a morte ocorreu em 30 de Adar A, é observada em 30 Shvat em um ano não bissexto.

Especificando um ano hebraico para o Ano parâmetro faz com que o comportamento correto seja
selecionado para uma morte naquele ano. Você também pode ter que especificar uma bandeira, Dependendo da sua
tradição

A informação jahrzeit foi fornecida por Frank Yellin, que citou "The Comprehensive
Calendário hebraico" de Arthur Spier e "Cálculos de calendário" de EM Reingold e
Nachum Dershowitz.

FORA DA BANDA LEMBRETES


A SPECIAL palavra-chave é usada para transmitir informações "fora de banda" para lembrar back-ends, tais
as tkremind or Rem2PS. Eles são usados ​​somente ao canalizar dados de um lembrar -p linha. (Observação
que o especial COLOR é uma exceção; é rebaixado para o equivalente a MSG em lembrar
modo normal de operação.)

Os vários SPECIALs reconhecidos são específicos para cada backend; no entanto, existem três
SPECIALs que todos os back-ends devem tentar oferecer suporte. Atualmente são apoiados por
Rem2PS, tkremind e rem2html.

A SOMBRA especial substitui o psshade() função. Use assim:
REM Sáb Dom SOM ESPECIAL 128
REM Seg SOM ESPECIAL 255 0 0
A SOMBRA palavra-chave é seguida por um ou três números, de 0 a 255.
é fornecido, ele é interpretado como um valor em escala de cinza de preto (0) a branco (255).
Se três números forem fornecidos, eles serão interpretados como componentes RGB do mínimo (0) a
máximo (255). O exemplo acima sombreia os fins de semana de um cinza bastante escuro e torna as segundas-feiras um
vermelho totalmente saturado. (Esses tons aparecem em calendários produzidos por Rem2PS, tkremind e
rem2html.)

A LUA especial substitui o psmoon() função. Use assim:
REM[lua(0)] LUA ESPECIAL 0
REM[lua(1)] LUA ESPECIAL 1
REM[lua(2)] LUA ESPECIAL 2
REM[lua(3)] LUA ESPECIAL 3
Estes desenham pequenas luas nos vários calendários. A sintaxe completa do LUA especial
é como se segue:
... Fase ESPECIAL DA LUA tamanho da lua tamanho da fonte msg

Fase é um número de 0 a 3, com 0 representando uma lua nova, 1 o primeiro quarto, 2 a
lua cheia e 3 o último quarto.

tamanho da lua é o diâmetro em unidades PostScript da lua para desenhar. Se omitido ou fornecido
como -1, o back-end escolhe um tamanho apropriado.

tamanho da fonte é o tamanho da fonte em unidades PostScript do msg

Msg é um texto adicional que é colocado próximo ao glifo da lua.

Observe que apenas o Rem2PS suportes de back-end tamanho da lua e tamanho da fonte; os outros back-ends usam
tamanhos fixos.

A COLOR especial permite que você coloque lembretes coloridos no calendário. Use assim:

REM ... SPECIAL COLOR 255 0 0 Este é um lembrete vermelho brilhante
REM ... COR ESPECIAL 0 128 0 Este é um lembrete verde escuro

Você pode soletrar COLOR da maneira americana ("COLOR") ou da maneira britânica ("COLOUR"). Isto
manual usará o modo americano.

Imediatamente após COLOR deve haver três números decimais variando de 0 a 255
especificando as intensidades de vermelho, verde e azul, respectivamente. O resto da linha é o
texto para colocar no calendário.

O especial COLOR é "duplamente especial", pois em seu modo de operação normal, lembrar trata
um especial COLOR como um lembrete do tipo MSG. Além disso, se você invocar lembrar com -cc...,
em seguida, aproxima os lembretes SPECIAL COLOR no seu terminal.

A SEMANA especial permite que você coloque anotações como o número da semana no calendário. Por
Por exemplo, isso numeraria toda segunda-feira com o número da semana ISO 8601. O número da semana é
mostrado assim: "(Wn)" neste exemplo, mas você pode colocar o texto que quiser após o
palavra-chave SEMANA.

REM Segunda-feira SEMANA ESPECIAL (W[weekno()])

DIVERSOS


COMANDO ABREVIATURAS

Os seguintes tokens podem ser abreviados:

o REM pode ser omitido - está implícito se nenhum outro comando válido estiver presente.

o CLARO-OMITIR-CONTEXTO -> LIMPAR

o PUSH-OMITIR-CONTEXTO -> EMPURRE

o POP-OMIT-CONTEXTO -> POP

o DUMPVARES -> DUMP

o BANDEIRA -> BANIMENTO

o INCLUIR -> INC

o Digitalizar a partir -> SCAN

BELO EXEMPLOS

Esta seção é uma amostra do que você pode fazer com lembrar.

REM 5 de fevereiro de 1991 AT 14:00 +45 *30 \
RUN mail -s "Reunião em %2" $LOGNAME

Em 5 de fevereiro de 1991, este lembrete enviará por correio lembretes de uma reunião às 2h00 às 1h15,
1:45 e 2:00. O assunto da mensagem de correio será "Reunião às 2:00" e o corpo
da mensagem ficará em branco.

REM AT 17:00 RUN echo "5:00pm - GO HOME!" | xless -g +0+0 &

Este lembrete irá abrir uma janela xless às ​​5:00 todos os dias. A janela xless irá
conter a linha "5:00pm - GO HOME!"

REM AT 23:59 RUN (suspensão 120; lembrar -a [filename()]) &

Este lembrete será executado em um minuto para a meia-noite. Isso causará um novo lembrar processo de
começar um minuto depois da meia-noite. Isso permite que você tenha um serviço de lembrete contínuo
para que você possa trabalhar durante a noite e ainda receber lembretes programados para o início da manhã.
Observe que esse truque não é mais necessário, desde que você execute lembrar no modo daemon.

lembrar -c12 /dev/null janeiro de 1993

Esta invocação de lembrar fará com que ele imprima um calendário para 1993, com todas as entradas
deixado em branco.

REM CAL [trigdate()-data(ano(trigdate()), 1, 1)+1]

Este exemplo coloca uma entrada em cada caixa de um calendário mostrando o número (1-365 ou 366) de
o dia do ano.

REM Ter 2 Nov SATISFY (year(trigdate())%4) == 0
SE trigválido()
REM [trigdata()] ++5 MSG \
Eleição presidencial dos EUA!!
Endif

Este exemplo avisa 5 dias antes de cada eleição presidencial americana. O primeiro REM
O comando calcula a primeira terça-feira após a primeira segunda-feira de novembro. (Isto é
equivalente à primeira terça-feira em ou após 2 de novembro). SATISFAZER cláusula garante que
a data de disparo é emitida apenas em anos eleitorais, que são múltiplos de 4. A segunda
REM comando realmente emite o lembrete.

DETALHES SOBRE(ABOUT) TRIGGER COMPUTAÇÃO

Aqui está uma conceptual descrição de como os gatilhos são calculados. Observe que lembrar
realmente usa um procedimento muito mais eficiente, mas os resultados são os mesmos que se o
procedimento conceitual foi seguido.

lembrar começa a partir da data atual (ou seja, o valor de hoje()) e varre para frente,
examinando cada dia um de cada vez até encontrar uma data que satisfaça o gatilho, ou pode
provar que nenhuma dessas datas (até ou depois de hoje()) existir.

If lembrar está executando um SATISFAZER-tipo lembrete, avalia a expressão com
trigdate () definido para a data encontrada acima. Se a expressão for avaliada como zero ou o valor nulo
corda, lembrar continua o procedimento de digitalização descrito acima, começando com o dia
após o gatilho encontrado acima.

A Digitalizar a partir cláusula (tendo uma sintaxe semelhante a ATÉ) pode modificar a estratégia de pesquisa
usava. Nesse caso, lembrar inicia o procedimento de digitalização em data_de_scan, que é a data
especificado no Digitalizar a partir cláusula. Por exemplo:

REM Seg 1 SCANFROM 17 Jan 1992 MSG Foo

O exemplo acima sempre terá uma data de disparo de segunda-feira, 3 de fevereiro de 1992. Ou seja,
Porque lembrar começa a digitalizar a partir de 17 de janeiro de 1992 e para de digitalizar assim que atinge
uma data que satisfaça "Seg 1."

O principal uso de Digitalizar a partir é em situações em que você deseja calcular as posições de
férias flutuantes. Considere o exemplo do Dia do Trabalho mostrado muito antes. O Dia do Trabalho é o
primeira segunda-feira de setembro. Pode mover-se ao longo de um intervalo de 7 dias. Considere o seguinte
seqüência:

REM Mon 1 Set SCANFROM [hoje()-7] SATISFY 1
OMITIR [trigdata()]

REM Seg APÓS MSG Olá

A Digitalizar a partir cláusula garante que lembrar começa a digitalizar a partir de 7 dias antes do atual
encontro. Isso garante que o Dia do Trabalho para o ano atual continuará a ser acionado
até 7 dias após a ocorrência. Isso permite que você use com segurança a palavra-chave AFTER como
mostrando.

Em geral, use Digitalizar a partir como mostrado para seguro móvel OMITIR. A quantidade que você deve digitalizar de volta
por (7 dias no exemplo acima) depende do número de possíveis OMITIDO
dias que possam ocorrer, e no intervalo do feriado móvel. Geralmente, um valor de 7 é
seguro.

A A PARTIR DE cláusula opera quase como o contraponto à ATÉ. Impede o lembrete
de acionamento antes do A PARTIR DE encontro. Por exemplo, o seguinte lembrete:

REM Seg Qui DE 23 de julho de 2007 ATÉ 2 de agosto de 2007 Teste MSG

desencadeará às segundas e quintas-feiras entre 23 de julho de 2007 e 2 de agosto de 2007 inclusive.

A PARTIR DE é realmente apenas açúcar sintático; você pode implementar o lembrete acima da seguinte forma:

REM Seg Qui SCANFROM [max(hoje(), '2007-07-23')] \
ATÉ 2 de agosto de 2007 Teste MSG

mas isso é muito mais difícil de ler. Internamente, lembrar trata A PARTIR DE exatamente como ilustrado
utilização Digitalizar a partir. Por esse motivo, você não pode usar os dois A PARTIR DE e Digitalizar a partir.

Observe que se você usar um REM comando para calcular uma data de disparo, executar data
cálculos (adição ou subtração, por exemplo) e, em seguida, use a data modificada em um
subseqüente REM comando, os resultados pode não be o que Você pretendido. Isso é porque você
contornaram o mecanismo de varredura normal. Você deveria tentar escrever REM comandos
que computam datas de disparo que podem ser usadas sem modificações em REM comandos. o
arquivo "defs.rem" que vem com o lembrar distribuição contém exemplos.

DETALHES SOBRE(ABOUT) TRIGVALIDO()

A trigvalid () função retorna 1 se lembrar poderia encontrar uma data de disparo para o anterior
REM or IFTRIG comando. Mais especificamente, retorna 1 se lembrar encontra uma data não antes
da iniciando dados of da exploração que satisfaça o gatilho. Além disso, há um
caso especial em que trigvalid () retorna 1 e trigdate () retorna um resultado significativo:

Se o REM or IFTRIG comando não continha um ATÉ cláusula, e continha todas as
dia, mês e ano componentes, então lembrar calculará corretamente uma data de disparo, mesmo se
acontece de ser antes do início da digitalização. Observe que esse comportamento não é verdadeiro para
versões lembrar antes de 03.00.01.

Use o lembrete online usando os serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    SuiteCRM
    SuiteCRM
    SuiteCRM é o cliente premiado
    Gestão de Relacionamento (CRM)
    aplicativo trazido a você por autores
    e mantenedores, SalesAgility. É o
    mais do mundo...
    Baixar SuiteCRM
  • 2
    Poweradmin
    Poweradmin
    Poweradmin é um DNS baseado na web
    ferramenta de administração para o servidor PowerDNS.
    A interface tem suporte total para a maioria
    dos recursos do PowerDNS. tem cheio
    Apoio, suporte...
    Baixar Poweradmin
  • 3
    Estrutura da Web do Gin
    Estrutura da Web do Gin
    Gin é uma estrutura da web incrivelmente rápida
    escrito em Golang que pode realizar até
    40 vezes mais rápido, graças ao seu
    API tipo martini e versão personalizada de
    httpprout ...
    Baixar Gin Web Framework
  • 4
    CEREUS LINUX
    CEREUS LINUX
    CEREUS LINUX baseado em MX LINUX com
    vários ambientes de escritorios. Isso é
    um aplicativo que também pode ser obtido
    da
    https://sourceforge.net/projects/cereu...
    Baixar CEREUS LINUX
  • 5
    Coach de Tarefas
    Coach de Tarefas
    Task Coach - Sua tarefa amigável
    Gerente. O Task Coach é um programa aberto e gratuito
    gerenciador de tarefas de origem. Ele cresceu de
    frustração sobre outros programas não
    manipulação de compostos...
    Baixe o treinador de tarefas
  • 6
    Mecanismo de banco de dados HyperSQL (HSQLDB)
    Mecanismo de banco de dados HyperSQL (HSQLDB)
    HSQLDB é um mecanismo de banco de dados relacional
    escrito em Java, com um driver JDBC,
    em conformidade com ANSI SQL:2016. Um pequeno,
    mecanismo e servidor rápido e multithread
    com mim...
    Baixe o mecanismo de banco de dados HyperSQL (HSQLDB)
  • Mais "

Comandos Linux

Ad