<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?action=history&amp;feed=atom&amp;title=Programmer_Guide%2FCommand_Reference%2FSHELL</id>
	<title>Programmer Guide/Command Reference/SHELL - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?action=history&amp;feed=atom&amp;title=Programmer_Guide%2FCommand_Reference%2FSHELL"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;action=history"/>
	<updated>2026-05-06T20:44:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=9926&amp;oldid=prev</id>
		<title>Jw at 07:23, 15 March 2018</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=9926&amp;oldid=prev"/>
		<updated>2018-03-15T07:23:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:23, 15 March 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Shell}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jw</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=8942&amp;oldid=prev</id>
		<title>Jw at 10:10, 29 February 2016</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=8942&amp;oldid=prev"/>
		<updated>2016-02-29T10:10:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:10, 29 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Example==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; // Load a source file and start one of the macros&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; load sourcecode scripts\examples\shellexample.sts&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; shell shellexample&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jw</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=8940&amp;oldid=prev</id>
		<title>Jw at 09:44, 29 February 2016</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=8940&amp;oldid=prev"/>
		<updated>2016-02-29T09:44:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:44, 29 February 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{Stx}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{Stx}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;User Guide&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Workspace&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pre-configured profiles|LOAD&lt;/del&gt;]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STX}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;..&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LOAD&lt;/ins&gt;/]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STX}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jw</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6986&amp;oldid=prev</id>
		<title>Christian at 12:19, 2 May 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6986&amp;oldid=prev"/>
		<updated>2014-05-02T12:19:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:19, 2 May 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{Stx}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/del&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{Stx}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stx&lt;/ins&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6787&amp;oldid=prev</id>
		<title>Christian at 16:37, 29 April 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6787&amp;oldid=prev"/>
		<updated>2014-04-29T16:37:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:37, 29 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{Stx}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{Stx}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STx&lt;/del&gt;}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/ins&gt;}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/del&gt;}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stx&lt;/del&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stx&lt;/ins&gt;}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/ins&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6786&amp;oldid=prev</id>
		<title>Christian at 16:36, 29 April 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6786&amp;oldid=prev"/>
		<updated>2014-04-29T16:36:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:36, 29 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/del&gt;}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stx&lt;/ins&gt;}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STx}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STx}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&amp;#039;s only a stub, so don&amp;#039;t bother with it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{STX}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STx&lt;/del&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{STX}} guru:]] This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stx&lt;/ins&gt;}} programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6782&amp;oldid=prev</id>
		<title>Christian at 16:30, 29 April 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6782&amp;oldid=prev"/>
		<updated>2014-04-29T16:30:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:30, 29 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STx}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STx}}]]. And since this is a dead link, I have searched the {{STx}} documentation for any article that may fit this description, and found the following:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&#039;s only a stub, so don&#039;t bother with it&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Programming|Programming:]]  It&#039;s only a stub, so don&#039;t bother with it&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{STX}} guru:]] This is probably the way to go if you are &amp;#039;&amp;#039;really&amp;#039;&amp;#039; new to {{STX}}. It is a longish beginner&amp;#039;s handbook on {{STx}} programming.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Programmer_Guide/STx_Guru|Becoming an {{STX}} guru:]] This is probably the way to go if you are &amp;#039;&amp;#039;really&amp;#039;&amp;#039; new to {{STX}}. It is a longish beginner&amp;#039;s handbook on {{STx}} programming.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6781&amp;oldid=prev</id>
		<title>Christian at 16:29, 29 April 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6781&amp;oldid=prev"/>
		<updated>2014-04-29T16:29:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:29, 29 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STx}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STX}}]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{STx}}]]. And since this is a dead link, I have searched the {{STx}} documentation for any article that may fit this description, and found the following:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Programmer_Guide/Programming|Programming:]]  It&#039;s only a stub, so don&#039;t bother with it&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Programmer_Guide/Introduction|Introduction:]] This seems more helpful, though a bit outdated and fragmentary&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Programmer_Guide/STx_Guru|Becoming an &lt;/ins&gt;{{STX}} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;guru:&lt;/ins&gt;]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is probably the way to go if you are &#039;&#039;really&#039;&#039; new to {{STX}}. It is a longish beginner&#039;s handbook on {{STx}} programming&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6779&amp;oldid=prev</id>
		<title>Christian at 16:21, 29 April 2014</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6779&amp;oldid=prev"/>
		<updated>2014-04-29T16:21:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:21, 29 April 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STX&lt;/del&gt;}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;STx&lt;/ins&gt;}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STX}}]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The macro source code &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt; must be loaded (see the &amp;lt;code&amp;gt;[[User Guide/Workspace/Pre-configured profiles|LOAD]]&amp;lt;/code&amp;gt; command). The &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; passed to the macro are stored in the variable &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt; 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, &amp;lt;var&amp;gt;macroarguments&amp;lt;/var&amp;gt; before it is assigned to &amp;lt;code&amp;gt;#ARGV&amp;lt;/code&amp;gt;. For more information on argument passing, and parsing, see [[Programmer_Guide/Concepts/Argument_Passing|Argument Passing]]. For a broader information on macro programming, see [[XXX|Script Programming in {{STX}}]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want your subroutine to be able to access the environment of the caller, there is the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt; command for executing the subroutine in a &amp;#039;&amp;#039;copy&amp;#039;&amp;#039; of the calling environment, and even the &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt; command for dangerously executing the subroutine directly within the caller&amp;#039;s environment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6168&amp;oldid=prev</id>
		<title>Christian at 12:13, 11 April 2013</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.kfs.oeaw.ac.at/stx/docs/wiki/index.php?title=Programmer_Guide/Command_Reference/SHELL&amp;diff=6168&amp;oldid=prev"/>
		<updated>2013-04-11T12:13:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:13, 11 April 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  SHELL &amp;lt;var&amp;gt;macroname&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/var&amp;gt; &amp;lt;var&amp;gt;&lt;/ins&gt;macroarguments&amp;lt;/var&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STX}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt; command starts a new {{STX}} shell (i.e., a new {{STX}} command interpreter) to execute the subroutine &amp;lt;var&amp;gt;macroname&amp;lt;/var&amp;gt;. Hence, your subroutine will start its existence in a clean execution environment, without any local variables set. It will, differently put, be unable to access the local and the shell variables of the caller. Much less will it be able to alter them (for a different behaviour, see below, or directly refer to the {{STX}} statements &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACRO|MACRO]]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;[[Programmer_Guide/Command_Reference/MACROX|MACROX]]&amp;lt;/code&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Christian</name></author>
	</entry>
</feed>