Use $( and $) in Rules
The information in database maps is accessed in the RHS of rules. This is the basic syntax:
$(name key $)The key is looked up in the database map
whose symbolic name (declared with the K
configuration command, Section 23.2) is
name. If the
key is found, the entire expression,
including the $( and $), is
normally replaced with the value returned for that
key.[4] Any
suffix, as specified with the
-a switch (-a) in the
K configuration declaration for
name, is appended to the data. If the
key is not found, the entire expression is
replaced with key. If the $) is
omitted, all tokens up to but excluding the tab and comment, or
end-of-line if there is no comment, are taken as the key. To
illustrate one use for $( and
$), see the following rule:
R$- . uucp $: $(uucp $1.uucp $)
and the following K command:
Kuucp hash /etc/mail/uucp
This associates the symbolic name uucp with a
hash-type file called
/etc/mail/uucp. If the uucp
database contained entries such as these:
lady.uucp lady.localuucp sonya.uucp sonya.localuucp
a workspace of lady.uucp would match the LHS, so
the RHS would look up $1.uucp (thus,
lady.uucp) in the uucp.db
database. Because lady.uucp is found, the entire
$( to $) RHS expression is
replaced with lady.localuucp from the database.
Any UUCP hosts other than lady or
sonya would not be found in the database, so the
RHS expression would become the original workspace, unchanged.
Note that the
entire RHS is prefixed with a $:. This prevents
sendmail from retesting ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access