Опциони контекст може се користити у корисничким макроима, што омогућава замену подразумеване вредности вредношћу специфичном за контекст.
Контекст се додаје називу макроа; синтакса зависи од тога да ли је контекст статичка текстуална вредност:
{$MACRO:"static text"}
или регуларни израз:
{$MACRO:regex:"regular expression"}
Имајте на уму да макро са контекстом регуларног израза може бити дефинисан само у конфигурацији корисничког макроа. Ако се префикс regex:
користи негде другде као контекст корисничког макроа, као у изразу окидача, третираће се као статички контекст.
Навођење контекста је опционо (видети такође important notes).
Примери контекста макроа:
Example | Description |
---|---|
{$LOW_SPACE_LIMIT} |
Кориснички макро без контекста. |
{$LOW_SPACE_LIMIT:/tmp} |
Кориснички макро са контекстом (статички стринг). |
{$LOW_SPACE_LIMIT:regex:"^/tmp$"} |
Кориснички макро са контекстом (регуларни израз). Исто као {$LOW_SPACE_LIMIT:/tmp} . |
{$LOW_SPACE_LIMIT:regex:"^/var/log/.*$"} |
Кориснички макро са контекстом (регуларни израз). Подудара се са свим стринговима са префиксом /var/log/. |
Кориснички макрои са контекстом могу се дефинисати да би се постигли флексибилнији прагови у изразима окидача (на основу вредности које је преузело откривање ниског нивоа). На пример, можете дефинисати следеће макрое:
Затим се макро за откривање ниског нивоа може користити као контекст макроа у прототипу окидача за откривање монтираног система датотека:
last(/host/vfs.fs.size[{#FSNAME},pfree])<{$LOW_SPACE_LIMIT:"{#FSNAME}"}
Након откривања, различити прагови ниског простора ће се примењивати у окидачима у зависности од откривених тачака монтирања или типова система датотека. Проблемски догађаји ће се генерисати ако:
Не креирајте различите контекстне макрое који се подударају са истим низом да бисте избегли недефинисано понашање.
Технички, контекст макроа се одређује коришћењем правила сличних параметрима item key, осим што се контекст макроа не анализира као неколико параметара ако постоји знак ,
:
"
ако контекст садржи знак }
или почиње знаком "
. Наводници унутар контекста под наводом морају бити избегнути знаком \
. - Сам знак \
није избегнут, што значи да је немогуће имати контекст под наводницима који се завршава знаком \
- макро {$MACRO:"a:\b\c\"} је неважећи.Следећи макрои су сви еквивалентни, јер имају исти контекст: {$MACRO:A}, {$MACRO: A} и {$MACRO:"A"}. Ово је у супротности са кључевима ставки, где су 'key[a]', 'key[ a]' и 'key["a"]' семантички исти, али различити због јединствености.