Um contexto opcional pode ser usado em user macros, permitindo substituir o valor padrão com um específico do contexto.
O contexto é anexado ao nome da macro; a sintaxe depende se o contexto é um valor de texto estático:
ou uma expressão regular:
Observe que uma macro com contexto de expressão regular só pode ser definida em configuração de macro do usuário. Se o prefixo regex:
for usado em outro lugar como contexto de macro do usuário, como em uma expressão de gatilho, será tratado como contexto estático.
A citação de contexto é opcional (veja também importante notas).
Exemplos de contexto de macro:
Exemplo | Descrição |
---|---|
{$LOW_SPACE_LIMIT} |
Macro do usuário sem contexto. |
{$LOW_SPACE_LIMIT:/tmp} |
Macro do usuário com contexto (string estática). |
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} |
Macro de usuário com contexto (expressão regular). O mesmo que {$LOW_SPACE_LIMIT:/tmp} . |
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} |
Macro de usuário com contexto (expressão regular). Corresponde a todas as strings prefixadas com /var/log/. |
Macros de usuário com contexto podem ser definidas para realizar limites em expressões de gatilho (com base nos valores recuperados por descoberta de baixo nível). Por exemplo, você pode definir as seguintes macros:
Então, uma macro de descoberta de baixo nível pode ser usada como contexto de macro em um acionar protótipo para descoberta do sistema de arquivos montado:
Após a descoberta, diferentes limites de espaço reduzido serão aplicados em acionadores dependendo dos pontos de montagem ou tipos de sistema de arquivos descobertos. Os eventos de problema serão gerados se:
Não crie macros de contexto diferentes que correspondam ao mesma string para evitar comportamento indefinido.
Tecnicamente, o contexto macro é especificado usando regras semelhantes a item key, exceto que o contexto da macro é não analisado como vários parâmetros se houver um caractere ,
:
"
se o contexto contiver um }
caractere ou começa com um caractere "
. Aspas entre aspas contexto deve ser escapado com o caractere \
.\
em si não tem escape, o que significa que é impossível ter um contexto citado terminando com o caractere \
- a macro {$MACRO:"a:\b\c\"} é inválido.As macros a seguir são todas equivalentes, pois possuem a mesma contexto: {$MACRO:A}, {$MACRO: A} e {$MACRO:"A"}. Isso está em contraste com chaves de item, onde 'key[a]', 'key[ a]' e 'key["a"]' são as mesmo semanticamente, mas diferente para fins de exclusividade.