1,945 bytes added
, 15:05, 15 May 2012
This [[Module Library|XQuery Module]] provides functions for executing system commands from XQuery. All functions are introduced with the {{Mono|proc:}} prefix, which is linked to the statically declared {{Mono|http://basex.org/modules/proc}} namespace.
=Functions=
==proc:system==
{|
|-
| valign='top' width='90' | '''Signatures'''
|{{Mono|<b>proc:system</b>($cmd as xs:string) as xs:string}}<br/>{{Mono|<b>proc:system</b>($cmd as xs:string, $args as xs:string*) as xs:string}}
|-
| valign='top' | '''Summary'''
|Executes the specified command in a separate process and returns the result as string.<br/>If the command results in an error, an XQuery exception will be thrown. Its error code will consist of the letters {{Mono|PROC}} and four digits with the command’s exit code.<br/>Additional command arguments may be specified via {{Mono|$args}}.
|-
| valign='top' | '''Examples'''
|
* {{Mono|proc:system('date')}} returns the current date on a Linux system.
* The following example returns "Command not found", if the command "xyz" cannot be located or executed:
<pre class="brush:xquery">
try {
proc:system('xyz')
} catch PROC0001 {
'Command not found.'
}
</pre>
|}
==proc:execute==
{|
|-
| valign='top' width='90' | '''Signatures'''
|{{Mono|<b>proc:execute</b>($cmd as xs:string) as element(result)}}<br/>{{Mono|<b>proc:execute</b>($cmd as xs:string, $args as xs:string*) as element(result)}}
|-
| valign='top' | '''Summary'''
|Executes the specified command in a separate process and returns the result as element.<br/>Additional command arguments may be specified via {{Mono|$args}}.<br/>A result has the following structure:<br/>
<pre class="brush:xml">
<result>
<output>...result...</output>
<error/>
<code>0</code>
</result>
</pre>
|-
| valign='top' | '''Examples'''
|
* {{Mono|proc:execute('dir', '\')}} returns the root directory on a Windows system.
|}
=Changelog=
The module was introduced with {{Version|7.2.2}}.