Difference between revisions of "Process Module"
Jump to navigation
Jump to search
m (Text replacement - "<syntaxhighlight lang="xquery">" to "<pre lang='xquery'>") Tags: Mobile web edit Mobile edit |
|||
Line 32: | Line 32: | ||
* {{Code|proc:system('date')}} returns the current date on a Linux system. | * {{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): | * Analyses the given input and counts the number of lines, words and characters (provided that {{Code|wc}} is available on the system): | ||
− | < | + | <pre lang='xquery'> |
proc:system( | proc:system( | ||
'wc', (), | 'wc', (), | ||
Line 39: | Line 39: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system): | * The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system): | ||
− | < | + | <pre lang='xquery'> |
try { | try { | ||
proc:system('xyz') | proc:system('xyz') |
Revision as of 18:30, 1 December 2023
This XQuery Module provides functions for executing system commands from XQuery.
Contents
Conventions
All functions and errors in this module are assigned to the http://basex.org/modules/proc
namespace, which is statically bound to the proc
prefix.
Functions
proc:system
Signature | proc:system( $command as xs:string, $arguments as xs:string* := (), $options as map(*)? := map { } ) as xs:string |
Summary | Executes a $command with the specified $arguments in a separate process and returns the result as a string. The $options parameter contains process options:
|
Errors | encoding : the specified encoding does not exist or is not supported.timeout : the specified timeout was exceeded.error : the command could not be executed, or an I/O exception was raised.code.... : If the commands returns an exit code different to 0, an error will be raised. Its code will consist of the letters code and four digits with the exit code. |
Examples |
proc:system(
'wc', (),
map { 'input': 'A B' || out:nl() || 'C' }
)
</syntaxhighlight>
* The following example returns “Command not found” (unless {{Code|xyz}} is a valid command on the system):
<pre lang='xquery'>
try {
proc:system('xyz')
} catch proc:error {
'Command not found: ' || $err:description
}
</syntaxhighlight>
|}
==proc:execute==
{| width='100%'
|- valign="top"
| width='120' | '''Signature'''
|<pre>proc:execute(
$command as xs:string,
$arguments as xs:string* := (),
$options as map(*)? := map { }
) as element(result)
|
Summary | Executes a $command with the specified $arguments in a separate process and returns the result as an element:
The result has the following structure: <syntaxhighlight lang="xml"> <result> <output>...output...</output>
<error>...error message...</error>
</result> </syntaxhighlight> |
Errors | encoding : the specified encoding does not exist or is not supported.timeout : the specified timeout was exceeded.
|
Examples |
|
proc:fork
Signature | proc:fork( $command as xs:string, $arguments as xs:string* := (), $options as map(*)? := map { } ) as element(result) |
Summary | Executes a $command with the specified $arguments in a separate process and ignores the result. The same $options are allowed as for proc:system with the encoding being ignored.
|
Errors | encoding : the specified encoding does not exist or is not supported.
|
Examples |
|
proc:property
Signature | proc:property( $name as xs:string ) as xs:string? |
Summary | Returns the system property, specified by $name , or a context parameter of the web.xml file with that name (see Web Applications). An empty sequence is returned if the property does not exist. For environment variables of the operating system, please use fn:environment-variable.
|
Examples |
|
proc:property-names
Signature | proc:property-names() as xs:string* |
Summary | Returns the names of all Java system properties and context parameters of the web.xml file (see Web Applications). For environment variables of the operating system, please use fn:available-environment-variables.
|
Examples |
|
Errors
Code | Description |
---|---|
code...
|
The result of a command call with an exit code different to 0. |
code9999
|
A command could not be executed. |
encoding
|
The specified encoding does not exist or is not supported. |
timeout
|
The specified timeout was exceeded. |
Changelog
- Version 9.0
- Added:
proc:fork
- Updated: error codes; errors now use the module namespace
- Updated: new
input
option; revised error handling
- Version 8.6
- Updated:
proc:system
,proc:exec
:encoding
option moved to options argument,timeout
anddir
options added.
- Version 8.3
- Added:
proc:property
,proc:property-names
.
The module was introduced with Version 7.3.