Simplifying map syntax
automount recognizes the
``&'' and ``*'' characters as having a special meaning
within maps.
Using these characters as string substitutions
within automount maps reduces redundancy in each
line of a map and saves a user from having to duplicate information.
Suppose you have an indirect map with a lot of subdirectories specified, for example:
john moscow:/home/moscow:john
mary moscow:/home/moscow:mary
joe moscow:/home/moscow:joe
able prague:/export/home:able
baker sydney:/export/home:baker
[. . .]
Consider using string substitutions.
If the string in the ``key'' field is repeated in the
``location'' field,
you can use the ampersand character (&)
in place of the key value string wherever it appears
in the ``location'' field.
Using the ampersand, the above map now looks like:
john moscow:/home/moscow:&
mary moscow:/home/moscow:&
joe moscow:/home/moscow:&
able prague:/export/home:&
baker sydney:/export/home:&
[. . .]
Suppose the name of the server is the same as the key
itself, for instance:
moscow moscow:/home/moscow
sydney sydney:/home/sydney
prague prague:/home/prague
milan milan:/home/milan
zurich zurich:/home/zurich
[. . .]
The use of the ampersand results in:
moscow &:/home/&
sydney &:/home/&
prague &:/home/&
milan &:/home/&
zurich &:/home/&
[. . .]
You can also use key substitutions in a direct map:
/usr/man moscow,seattle,zurich:/usr/manThis could be written as:
/usr/man moscow,seattle,zurich:&Notice that the ampersand substitution uses the whole key string, so if the key in a direct map starts with a ``/'' (as it should), that slash is carried over, and you could not do something like this:
/progs &1,&2,&3:/export/src/progsThis is because automount interprets it as:
/progs /progs1,/progs2,/progs3:/export/src/progs
Notice that all the entries in the ampersand indirect map examples have the same format. This permits you to use the usual substitute character, the asterisk (*). The asterisk reduces the whole thing to:
* &:/home/&Here each ampersand is substituted by the value of any given key. This tells automount to mount /home/server from any known server.
Once automount reads the substitute key, it does not continue reading the map, so that the following map is viable:
milan &:/export/& zurich &:/export/& * &:/home/&In the next map the last two entries are always ignored:
* &:/home/& milan &:/export/& zurich &:/export/&