shithub: purgatorio

ref: acc58dfee42368825f7595d63240fd6e88559776
dir: /man/1/sh-mload/

View raw version
.TH SH-MLOAD 1
.SH NAME
mload, munload \- namespace separation for shell modules
.SH SYNOPSIS
.B load mload

.B mload
.I name
[
.IR path ...
]
.br
.B munload
.I name
[
.IR path ...
]
.br
.SH DESCRIPTION
.I Mload
is a loadable module for
.IR sh (1)
that allows the simultaneous use of shell modules with
potentially clashing command name spaces.
.B Mload
creates a new namespace
.I name
and loads each
.I path
as a builtin module in the same way as
.B load
(see
.IR sh (1)).
Any commands or substitution builtins defined
by the modules are accessible by giving
the command and its arguments as arguments to
the
.I name
command.
.PP
.B Munload
unloads a module from the namespace
.IR name .
If no modules remain in the namespace,
.I name
is undefined as a command.
.SH EXAMPLE
Load
.I mpexpr
in a different namespace from
.I expr
(see
.IR sh-expr (1)):
.EX
load expr
mload mp mpexpr
echo ${expr 1 2 +}
echo ${mp expr 2 300 xx}
.EE
.SH SOURCE
.B /appl/cmd/sh/mload.b
.SH SEE ALSO
.IR sh (1),
.SH BUGS
Because of the way shell modules are implemented,
the namespaces are global across all processes that
share an instance of
.IR mload .