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,
The K Configuration Command on
page 882) is name
. If the
key
is found, the entire
expression, including the $(
and $)
, is normally replaced with the value
returned for that key
.[340] Any suffix
, as
specified with the -a
switch (-a on page 887) 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 ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.