Опциони контекст се може користити у кориснички макрои, омогућавајући да се замени подразумевану вредност са контекстно-специфичним.
Контекст се додаје имену макроа; синтакса зависи од тога да ли контекст је статична текстуална вредност:
или регуларни израз:
Имајте на уму да макро са контекстом регуларног израза може бити дефинисан само у конфигурација макроа корисника. Ако се префикс regex:
користи негде другде као кориснички макро контекст, као у изразу окидача, биће третиран као статички контекст.
Цитирање контекста је опционо (погледајте такође важно белешке).
Примери макро контекста:
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/. |
Кориснички макрои са контекстом се могу дефинисати да би се постигли флексибилнији прагови у изразима окидача (на основу вредности које је преузео откриће ниског нивоа). На пример, можете дефинисати следеће макрое:
Тада се макро за откривање ниског нивоа може користити као макро контекст у а покренути прототип за откривање монтираног система датотека:
Након открића, примењиваће се различити прагови малог простора окидачи у зависности од откривених тачака монтирања или типова система датотека. Проблемски догађаји ће се генерисати ако:
Немојте креирати различите контекстне макрое који одговарају исти стринг да би се избегло недефинисано понашање.
Технички, контекст макроа је специфициран помоћу правила сличних ставка кључа параметри, осим што је контекст макроа није рашчлањено као неколико параметара ако постоји знак ,
:
"
ако контекст садржи }
знак или почиње знаком "
. Наводници унутар наводника контекст мора бити избачен знаком \
.\
није уклоњен, што значи да је немогуће да има цитирани контекст који се завршава знаком \
- макро {$MACRO:"a:\b\c\"} је неважећи.Сви следећи макрои су еквивалентни, јер имају исте контекст: {$MACRO:A}, {$MACRO: A} и {$MACRO:"A"}. Ово је у супротности са кључевима ставки, где су 'key[a]', 'key[ a] и 'key["a"]' исто семантички, али различито у сврху јединствености.