Using Substitution

Substitution allows the Fixlet author to include relevance expressions in an action. This is accomplished by placing the relevance expression in curly braces:

run "{pathname of regapp "excel.exe"}"

This example runs a program without knowing where it is located. A relevance expression evaluates the pathname automatically using the 'regapp' inspector.

pause while {exists running application "c:\updater.exe"}

This action pauses until a program finishes executing, using the running application inspector.

Substitution is not recursive, although any particular command may have one or more expressions to evaluate before execution. The IBM BigFix Client is expecting to find a single expression inside the curly braces. If it sees another left brace before it encounters a closing right brace, it treats it as an ordinary character:

echo {"a left brace: {"}

would send this string to output:

a left b  race: {

Therefore no special escape characters are necessary to represent a left brace. To output a literal right brace without ending the substitution, use a double character:

echo {"{a string inside braces}}"}

would send this string to output:

{a string inside braces}

Or consider this example:

appendfile {{ name of operating system } {name of operating system} 

When this example is parsed, the double left braces indicate that what follows is not a relevance expression. Only a single right brace is necessary when it's outside of a relevance expression (inside a relevance expression, a double right brace is necessary to specify a literal one). This would output the following line to __appendfile:

{ name of operating system } WinXP

You can also use substitution with add prefetch item commands in prefetch blocks:

begin prefetch block
      parameter "manifest"="{pathname of file "manifest.spec" of client folder 
        of site "AV"}"
      add prefetch item {concatenation " ; " of lines of file 
        (parameter "manifest")} 
end prefetch block