MACRO
MACRO macroname macroarguments
The MACRO
command executes the macro (i.e., the subroutine) specified by macroname, passing to it the arguments specified by macroarguments. The macro will be started in its own variable environment, meaning that any changes the macro does to the environment will be lost after its execution.
The macro source code macroname must be loaded (see the LOAD
command). The macroarguments passed to the macro are stored in the variable #ARGV
of the called macro. Because of the special command-line processing in STx, all string replacements are applied to and all special parsing information (e.g. quotation marks) are removed from macroarguments before it is assigned to #ARGV
. For more information on argument passing, and parsing, see Argument Passing. For a broader information on macro programming, see Script Programming in STx.
If you want to execute a subroutine in the variable environment of the caller (which is dangerous), you will enjoy the MACROX
command. If, on the other hand, you want to separate the subroutine even more thoroughly from your current environment, you may even have it executed by a separate instance of the STx shell, i.e. the STx command interpreter, by using the SHELL
command for executing the subroutine.