murex Shell Docs

Command Reference: [[ (element)

Outputs an element from a nested structure

Description

Outputs an element from an array, map or table. Unlike index ([), element takes a path parameter which means it can work inside nested structures without pipelining multiple commands together. However this comes with the drawback that you can only return one element.

Element ([[) also doesn't support the bang prefix (unlike) index.

Please note that indexes in murex are counted from zero.

Usage

<stdin> -> [[ element ]] -> <stdout>

$variable[[ element ]] -> <stdout>

Examples

Return the 2nd element in an array

» ja [0..9] -> [[ /1 ]]
[
    "1",
]

Return the data-type and description of config shell syntax-highlighting

» config -> [[ /shell/syntax-highlighting/Data-Type ]]
bool

Detail

Element counts from zero

Indexes in murex behave like any other computer array in that all arrays start from zero (0).

Alternative path separators

Element uses the first character in the path as the separator. So the following are all valid parameters:

» config -> [[ ,shell,syntax-highlighting,Data-Type ]]
bool

» config -> [[ >shell>syntax-highlighting>Data-Type ]]
bool

» config -> [[ \|shell\|syntax-highlighting\|Data-Type ]]
bool

» config -> [[ >shell>syntax-highlighting>Data-Type ]]
bool

However there are a few of caveats:

  1. Currently element does not support unicode separators. All separators must be 1 byte characters. This limitation is highlighted as a bug, albeit a low priority one. If this limitation does directly affect you then raise an issue on GitHub to get the priority bumped up.
  2. Any shell tokens (eg pipe |, ;, }, etc) will need to be escaped. For readability reasons it is recommended not to use such characters even though it is technically possible to.

    # Would fail because the semi-colon is an unescaped / unquoted shell token
    config -> [[ ;shell-syntax-highlighting;Data-Type ]]
  3. Please also make sure you don't use a character that is also used inside key names because keys cannot be escaped. For example both of the following would fail:

    # Would fail because 'syntax-highlighting' and 'Data-Type' both also contain
    # the separator character
    config -> [[ -shell-syntax-highlighting-Data-Type ]]
    
    # Would fail because you cannot escape key names (escaping happens at the
    # shell parser level rather than command parameter level)
    config -> [[ -shell-syntax\-highlighting-Data\-Type ]]

Quoting parameters

In murex, everything is a function. Thus even [[ is a function name and the closing ]] is actually a last parameter. This means the recommended way to quote element parameters is to quote specific key names or the entire path:

» config -> [[ /shell/"syntax-highlighting"/Data-Type ]]
bool

» config -> [[ "|shell|syntax-highlighting|Data-Type" ]]
bool

If you did need to quote the entire

Synonyms

See Also

This site is rebuilt weekly, the content is automatically generated from murex's source code. Last built on Mon Aug 10 06:09:08 UTC 2020 against commit 2557f7c2557f7cc7535c452c21d89164bd38ed8996f02fd. Downloadable murex binaries are also built weekly. Current version is 0.52.2000 BETA which has been verified against tests.