Un contexte facultatif peut ¨ºtre utilis¨¦ dans les macros utilisateur, permettant de remplacer la valeur par d¨¦faut par une valeur sp¨¦cifique au contexte.
Le contexte est ajout¨¦ au nom de la macro ; la syntaxe varie selon que le contexte est une valeur de texte statique :
ou une expression r¨¦guli¨¨re :
Notez qu'une macro avec un contexte d'expression r¨¦guli¨¨re ne peut ¨ºtre d¨¦finie que dans la configuration de la macro utilisateur. Si le pr¨¦fixe regex:
est utilis¨¦ ailleurs comme contexte de macro utilisateur, comme dans une expression de d¨¦clencheur, il sera trait¨¦ comme un contexte statique.
La citation contextuelle est facultative (voir aussi notes importantes).
Exemples de contexte de macro :
Exemple | Description |
---|---|
{$LOW_SPACE_LIMIT} |
Macro utilisateur sans contexte. |
{$LOW_SPACE_LIMIT:/tmp} |
Macro utilisateur avec contexte (cha?ne statique). |
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} |
Macro utilisateur avec contexte (expression r¨¦guli¨¨re). Identique ¨¤ {$LOW_SPACE_LIMIT:/tmp} . |
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} |
Macro utilisateur avec contexte (expression r¨¦guli¨¨re). Correspond ¨¤ toutes les cha?nes pr¨¦fix¨¦es par /var/log/. |
Des macros utilisateur avec contexte peuvent ¨ºtre d¨¦finies pour atteindre des seuils plus flexibles dans les expressions de d¨¦clenchement (bas¨¦es sur les valeurs r¨¦cup¨¦r¨¦es par la d¨¦couverte de bas niveau). Par exemple, vous pouvez d¨¦finir les macros suivantes :
Ensuite, une macro de d¨¦couverte de bas niveau peut ¨ºtre utilis¨¦e comme contexte de macro dans un prototype de d¨¦clencheur pour la d¨¦couverte du syst¨¨me de fichiers mont¨¦ :
Apr¨¨s la d¨¦couverte, diff¨¦rents seuils d'espace r¨¦duit s'appliqueront dans les d¨¦clencheurs en fonction des points de montage ou des types de syst¨¨me de fichiers d¨¦couverts. Des ¨¦v¨¦nements de probl¨¨me seront g¨¦n¨¦r¨¦s si :
Ne cr¨¦ez pas de macros de contexte diff¨¦rentes correspondant ¨¤ la m¨ºme cha?ne pour ¨¦viter un comportement ind¨¦fini.
Techniquement, le contexte de la macro est sp¨¦cifi¨¦ ¨¤ l'aide de r¨¨gles similaires aux param¨¨tres de la cl¨¦ d'¨¦l¨¦ment, sauf que le contexte de la macro n'est pas analys¨¦ comme plusieurs param¨¨tres s'il y a un caract¨¨re ,
:
"
si le contexte contient un caract¨¨re }
ou commence par un caract¨¨re "
. Les guillemets ¨¤ l'int¨¦rieur du contexte entre guillemets doivent ¨ºtre ¨¦chapp¨¦s avec le caract¨¨re \
.\
lui-m¨ºme n'est pas ¨¦chapp¨¦, ce qui signifie qu'il est impossible d'avoir un contexte entre guillemets se terminant par le caract¨¨re \
- la macro {$MACRO:"a:\b\c\"} est invalide.Les macros suivantes sont toutes ¨¦quivalentes, car elles ont le m¨ºme contexte : {$MACRO:A}, {$MACRO:A} et {$MACRO:"A"}. Cela contraste avec les cl¨¦s d'¨¦l¨¦ment, o¨´ 'key[a]', 'key[ a]' et 'key["a"]' sont s¨¦mantiquement identiques, mais diff¨¦rents ¨¤ des fins d'unicit¨¦.