Simplifying map syntax
automount recognizes the
``&'' and ``
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 (
Here each ampersand is substituted by the value of any given key. This tells automount to mount /home/server from any known server.∗ &:/home/&
Once automount reads the substitute key, it does not continue reading the map, so that the following map is viable:
milan &:/export/& zurich &:/export/&In the next map the last two entries are always ignored:∗ &:/home/&
∗ &:/home/& milan &:/export/& zurich &:/export/&