Changes

Jump to navigation Jump to search
253 bytes removed ,  18:38, 1 December 2023
m
Text replacement - "syntaxhighlight" to "pre"
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|proc:system|$cmd as xs:string|xs:string}}<br/pre>{{Func|proc:system|( $cmd command as xs:string, $args arguments as xs:string*|xs :string}}<br/>{{Func|proc:system|$cmd as xs:string, $args as xs:string*= (), $options as map(xs*)? :string, xs:string= map { })|as xs:string}}<br/pre>|-valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as string. {{Code|$cmdcommand}} is the name of the command, arguments to with the command may be specified via {{Code|$argsarguments}}in a separate process and returns the result as a string. The {{Code|$options}} parameter contains process options:
* {{Code|encoding}}: convert result to the specified encoding. If no encoding is supplied, the system’s default encoding is used.
* {{Code|timeout}}: abort process execution after the specified number of seconds.
* {{Code|dir}}: process command in the specified directory.
* {{Code|input}}: standard string input ({{Code|stdin}}) to be passed on to the command.
|-valign="top"
|'''Errors'''
|{{Error|encoding|#Error}} the specified encoding does not exist or is not supported.<br/>{{Error|timeout|#Error}} the specified timeout was exceeded.<br/>{{Error|error|#Error}} the command could not be executed, or an I/O exception was raised.<br/>{{Error|code....|#Error}} If the commands returns an exit code different to 0, an error will be raised. Its code will consist of the letters {{Code|code}} and four digits with the exit code.<br/>
|-valign="top"
| '''Examples'''
|
* {{Code|proc:system('date')}} returns the current date on a Linux system.
* Analyses the given input and counts the number of lines, words and characters (provided that {{Code|wc}} is available on the system):
<pre classlang="brush:'xquery"'>
proc:system(
'wc', (),
</pre>
* The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system):
<pre classlang="brush:'xquery"'>
try {
proc:system('xyz')
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|proc:execute|$cmd as xs:string|element(result)}}<br/pre>{{Func|proc:execute|( $cmd command as xs:string, $args arguments as xs:string*|element := (result)}}<br/>{{Func|proc:execute|$cmd as xs:string, $args as xs:string*, $options as map(xs*)? :string, xs:string= map { })|as element(result)}}</pre>|-valign="top"
| '''Summary'''
|Executes the specified command in a separate process and returns the result as element:* {{Code|$cmdcommand}} is the name of the command, and arguments to with the command may be specified via {{Code|$argsarguments}}.in a separate process and returns the result as an element:* The same {{Code|$options}} are allowed as for [[#proc:system{{Function||proc:system]]}}.
* Instead of the {{Code|proc:error}} error, the error message and process code will be assigned to the returned elements.
* Instead of the {{Code|proc:code....}} error, the error message will be assigned to the returned element (no process code will be returned).
The result has the following structure:
<pre classlang="brush:xml">
<result>
<output>...output...</output>
</result>
</pre>
|-valign="top"
|'''Errors'''
|{{Error|encoding|#Error}} the specified encoding does not exist or is not supported.<br/>{{Error|timeout|#Error}} the specified timeout was exceeded.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|proc:fork|$cmd as xs:string|element(result)}}<br/pre>{{Func|proc:fork|( $cmd command as xs:string, $args arguments as xs:string*|element := (result)}}<br/>{{Func|proc:fork|$cmd as xs:string, $args as xs:string*, $options as map(xs*)? :string, xs:string= map { })|as element(result)}}</pre>|-valign="top"
| '''Summary'''
|Executes the specified command and ignores the result. a {{Code|$cmdcommand}} is the name of the command, and arguments to with the command may be specified via {{Code|$argsarguments}}in a separate process and ignores the result. The same {{Code|$options}} are allowed as for [[#proc:system{{Function||proc:system]] (but }} with the encoding will be being ignored).|-valign="top"
|'''Errors'''
|{{Error|encoding|#Error}} the specified encoding does not exist or is not supported.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|<pre>proc:property|( $name as xs:string|) as xs:string?}}<br/pre>|-valign="top"
| '''Summary'''
|Returns the system property, specified by {{Code|$name}}, or a context parameter of the {{Code|web.xml}} file with that name (see [[Web_Application#Configuration|Web Applications]]). An empty sequence is returned if the property does not exist. For environment variables of the operating system, please use [https://www.w3.org/TR/xpath-functions-30/#func-environment-variable fn:environment-variable].
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|<pre>proc:property-names||() as xs:string*}}<br/pre>|-valign="top"
| '''Summary'''
|Returns the names of all Java system properties and context parameters of the {{Code|web.xml}} file (see [[Web_Application#Configuration|Web Applications]]). For environment variables of the operating system, please use [https://www.w3.org/TR/xpath-functions-30/#func-available-environment-variables fn:available-environment-variables].
|-valign="top"
| '''Examples'''
|
! width="110"|Code
|Description
|-valign="top"
|{{Code|code...}}
|The result of a command call with an exit code different to 0.
|-valign="top"
|{{Code|code9999}}
|A command could not be executed.
|-valign="top"
|{{Code|encoding}}
|The specified encoding does not exist or is not supported.
|-valign="top"
|{{Code|timeout}}
|The specified timeout was exceeded.
;Version 9.0
* Added: [[#proc:fork{{Function||proc:fork]]}}
* Updated: error codes; errors now use the module namespace
* Updated: new {{Code|input}} option; revised error handling
;Version 8.6
* Updated: [[#proc:system{{Function||proc:system]]}}, [[#proc:exec{{Function||proc:exec]]}}: {{Code|encoding}} option moved to options argument, {{Code|timeout}} and {{Code|dir}} options added.
;Version 8.3
* Added: [[#proc:property{{Function||proc:property]]}}, [[#proc:property-names{{Function||proc:property-names]]}}.
The module was introduced with Version 7.3.
Bureaucrats, editor, reviewer, Administrators
13,554

edits

Navigation menu