Programmer Guide/Command Reference/SHELL: Difference between revisions

From STX Wiki
Jump to navigationJump to search
(Created page with '{{DISPLAYTITLE:{{SUBPAGENAME}}}} SHELL <var>macroname macroarguments</var> The <code>SHELL</code> command starts a new {{STX}} shell (i.e., a new {{STX}} command interpreter) t…')
 
No edit summary
Line 4: Line 4:
The <code>SHELL</code> command starts a new {{STX}} shell (i.e., a new {{STX}} command interpreter) to run the macro <var>macroname</var>.
The <code>SHELL</code> command starts a new {{STX}} shell (i.e., a new {{STX}} command interpreter) to run the macro <var>macroname</var>.


The macro source code <var>macroname</var> must be loaded (see <code>[[User Guide/Workspace/Pre-configured profiles|LOAD]]</code>)The <var>macroarguments</var> passed to the macro are stored in the variable <code>#ARGV</code> 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 <var>macroarguments</var> before it is assigned to <code>#ARGV</code>.For information about macro definitions (header) and argument parsing see the Script Programming in {{STX}}Many macros uses the call-format: name command arguments (e.g. <code>MSGBOX MSG text</code>). If you want to pass quoted arguments to such a macro, use the format <code>MSGBOX 'MSG text'</code> instead of <code>MSGBOX MSG 'text'</code>. This is necessary because the argument string <code>MSG 'text'</code> is passed (after command-line processing) as <code>MSGtext</code> to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable <code>#SHELL</code> of the caller. In the new shell, the variable <code>SHELL</code> is set to '<code>this_shellid caller_shellid</code>'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command <code>MACRO</code> explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line <code>MACRO macroname</code> is equivalent to command line <code>macroname</code>.
The macro source code <var>macroname</var> must be loaded (see <code>[[User Guide/Workspace/Pre-configured profiles|LOAD]]</code>)The <var>macroarguments</var> passed to the macro are stored in the variable <code>#ARGV</code> 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 <var>macroarguments</var> before it is assigned to <code>#ARGV</code>.
 
For information about macro definitions (header) and argument parsing see the [[XXX|Script Programming in {{STX}}]]. Many macros use the call-format: name command arguments (e.g. <code>MSGBOX MSG text</code>). If you want to pass quoted arguments to such a macro, use the format <code>MSGBOX 'MSG text'</code> instead of <code>MSGBOX MSG 'text'</code>. This is necessary because the argument string <code>MSG 'text'</code> is passed (after command-line processing) as <code>MSGtext</code> to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable <code>#SHELL</code> of the caller. In the new shell, the variable <code>SHELL</code> is set to '<code>this_shellid caller_shellid</code>'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command <code>MACRO</code> explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line <code>MACRO macroname</code> is equivalent to command line <code>macroname</code>.

Revision as of 18:22, 5 April 2011

SHELL macroname macroarguments

The SHELL command starts a new STx shell (i.e., a new STx command interpreter) to run the macro macroname.

The macro source code macroname must be loaded (see LOAD)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 information about macro definitions (header) and argument parsing see the Script Programming in STx. Many macros use the call-format: name command arguments (e.g. MSGBOX MSG text). If you want to pass quoted arguments to such a macro, use the format MSGBOX 'MSG text' instead of MSGBOX MSG 'text'. This is necessary because the argument string MSG 'text' is passed (after command-line processing) as MSGtext to the macro.If a new shell is called to run a macro, the id (8 hex digits) is assigned to the variable #SHELL of the caller. In the new shell, the variable SHELL is set to 'this_shellid caller_shellid'. The two variables can be used to identify the shells in communication messages.It is not necessary to use the command MACRO explicitly, because the interpreter tries to execute all 'non-shell' commands as a macro. This means the command line MACRO macroname is equivalent to command line macroname.

Navigation menu

Personal tools