runmode
)Alter the scheduler’s behaviour at higher scoping level
Due to dynamic nature in which blocks are compiled on demand,
traditional try
and trypipe
blocks cannot
affect the runtime behaviour of schedulers already invoked (eg for
function blocks and modules which try
et al would sit
inside). To solve this we need an additional command that is executed by
the compiler prior to the block being executed which can define the
runmode of the scheduler. This is the purpose of
runmode
.
The caveat of being a compiler command rather than a builtin is that
runmode
needs be the first command in a block.
runmode try|trypipe function|module
function hello {
# Short conversation, exit on error
runmode try function
read name "What is your name? "
out "Hello $name, pleased to meet you"
read mood "How are you feeling? "
out "I'm feeling $mood too"
}
runmode
’s parameters are ordered:
Always return a zero exit number.
Checks only the last command in the pipeline for errors. However still allows commands in a pipeline to run in parallel.
Checks every command in the pipeline before executing the next. However this blocks pipelines from running every command in parallel.
Checks last command in the pipeline for errors (still allowing commands to run in parallel) plus also checks if stderr contains excessive output.
Checks every command in the pipeline before executing the next (blocking commands from running in parallel) plus also checks if stderr contains excessive output.
Sets the runmode for all blocks within the function when
runmode
is placed at the start of the function. This
includes privates, autocompletes, events, etc.
Sets the runmode for all blocks within that module when placed at the
start of the module. This include any functions, privates,
autocompletes, events, etc that are inside that module. They do not need
a separate runmode ... function
if
runmode ... module
is set.
catch
): Handles the exception code raised by
try
or trypipe
unsafe
): Execute a block of code, always returning a
zero exit numberfid-list
): Lists all running functions within the
current Murex sessionevent
): Event driven programming for shell
scriptsout
):
Print a string to the stdout with a trailing new line charactertrypipe
): Checks for non-zero exits of each function
in a pipelineprivate
): Define a private function blockfunction
): Define a function blockread
): read
a line of input from the user
and store as a variabletrypipeerr
): Checks state of each function in a
pipeline and exits block on errortryerr
): Handles errors inside a block of codeautocomplete
): Set definitions for tab-completion in
the command linetry
):
Handles non-zero exits inside a block of codeThis document was generated from builtins/core/structs/try_doc.yaml.
This site's content is rebuilt automatically from murex's source code after each merge to the master
branch. Downloadable murex binaries are also built with the website.
Last built on Wed Jan 15 23:07:50 UTC 2025 against commit b4c4296b4c429617fd41527ea0efef33c52c15ef2b64972.
Current version is 6.4.2063 (develop) which has been verified against tests cases.