Dynamic translation is done on this field, so things like
the following example will work.
+The example program below has a few important features
+which should be noted:
+
+ * The string for the program name uses triple quotes.
+ These allow the text inside of the string to contain
+ double-quote characters without needing to escape
+ them. This doesn't affect the output string, but it
+ does make the configuration easier to read.
+
+ * The argument to "/bin/echo" is a double-quoted string.
+ That is, the attribute name, operator, and value are
+ passed to "echo" as one argument. If the parameters to
+ the "echo" command were not quoted, then they would be
+ passed as three separate arguments.
+
+ * The attribute value is surrounded by single quotes.
+ These single quotes are inside of the single argument
+ to the "echo" command.
+
+ * If instead the "echo" command was passed three separate
+ arguments, then the attribute value would be printed
+ _without_ the quotes. Because quoting an argument to
+ a command results in the _unquoted_ string being passed
+ to the command, as the argument.
+
+The summary of all of the above is that when printing
+attributes it's usually easier to run one shell script with
+no arguments. That shell script can then print the
+attribute names, operators, and values.
+
+Any string values should also be quoted.
+
input_pairs:: The attributes which are placed into the
```
exec echo {
wait = yes
- program = "/bin/echo Filter-Id := %{User-Name}"
+ program = """/bin/echo "Filter-Id := '%{User-Name}'" """
input_pairs = &request
output_pairs = &reply
shell_escape = yes
# Dynamic translation is done on this field, so things like
# the following example will work.
#
- program = "/bin/echo Filter-Id := %{User-Name}"
+ # The example program below has a few important features
+ # which should be noted:
+ #
+ # * The string for the program name uses triple quotes.
+ # These allow the text inside of the string to contain
+ # double-quote characters without needing to escape
+ # them. This doesn't affect the output string, but it
+ # does make the configuration easier to read.
+ #
+ # * The argument to "/bin/echo" is a double-quoted string.
+ # That is, the attribute name, operator, and value are
+ # passed to "echo" as one argument. If the parameters to
+ # the "echo" command were not quoted, then they would be
+ # passed as three separate arguments.
+ #
+ # * The attribute value is surrounded by single quotes.
+ # These single quotes are inside of the single argument
+ # to the "echo" command.
+ #
+ # * If instead the "echo" command was passed three separate
+ # arguments, then the attribute value would be printed
+ # _without_ the quotes. Because quoting an argument to
+ # a command results in the _unquoted_ string being passed
+ # to the command, as the argument.
+ #
+ # The summary of all of the above is that when printing
+ # attributes it's usually easier to run one shell script with
+ # no arguments. That shell script can then print the
+ # attribute names, operators, and values.
+ #
+ # Any string values should also be quoted.
+ #
+ program = """/bin/echo "Filter-Id := '%{User-Name}'" """
#
# input_pairs:: The attributes which are placed into the