murex Shell Docs

Command Reference: if

Conditional statement to execute different blocks of code depending on the result of the condition

Description

Conditional control flow

if can be utilized both as a method as well as a standalone function. As a method, the conditional state is derived from the calling function (eg if the previous function succeeds then the condition is true).

Usage

Function if:

if { code-block } then {
    # true
} else {
    # false
}

Method if:

command -> if {
    # true
} else {
    # false
}

Negative Function if:

!if { code-block } then {
    # false
}

Negative Method if:

command -> !if {
    # false
}

Please Note:

the then and else statements are optional. So the first usage could also be written as:

if { code-block } {
    # true
} {
    # false
}

However the practice of omitting those statements isn't recommended beyond writing short one liners in the interactive command prompt.

Examples

Check if a file exists:

if { g somefile.txt } then {
    out "File exists"
}

...or does not exist (both ways are valid):

!if { g somefile.txt } then {
    out "File does not exist"
}

if { g somefile.txt } else {
    out "File does not exist"
}

Detail

The conditional block can contain entire pipelines - even multiple lines of code let alone a single pipeline - as well as solitary commands as demonstrated in the examples above. However the conditional block does not output STDOUT nor STDERR to the rest of the pipeline so you don't have to worry about redirecting the output streams to null.

If you require output from the conditional blocks STDOUT then you will need to use either a murex named pipe to redirect the output, or test or debug flags (depending on your use case) if you only need to occasionally inspect the conditionals output.

Synonyms

See Also

This site is rebuilt weekly, the content is automatically generated from murex's source code. Last built on Mon May 25 06:11:51 UTC 2020 against commit aa3f3b7aa3f3b7e471543754fdcaf910d4920cad9112b91. Downloadable murex binaries are also built weekly. Current version is 0.48.0120 BETA which has been verified against 29375 tests.