result object saves the output from previous execution.
It is usefull to build advanced expect result... sentences.
After every execution (For example, run "whoami", on: :host1), Teuton gets output and saves it into result object. Then use result object to read or filter previous command output.
This example:
- get
/etc/passwdfile fromhost1, then - filter lines without
#and with/bin/bash. - count lines number and
- expect it to be greater that 6.
Let's see:
target "Active users with bash > 6"
run "cat /etc/passwd", on: :host1
expect result.grep_v('#').grep('/bin/bash').count.gt 6
It's posible contenate a sequence of several results orders. Examples:
Supose we execute this:
run "cat /etc/passwd", on: :host1
And then we could do:
| Description | Command |
|---|---|
| Get all lines that dosn't contain "nologin" and contain "/bin/bash" | result.grep_v("nologin").grep("/bin/bash") |
| Count all lines that dosn't contain "nologin" and contain "/bin/bash" | result.grep_v("nologin").grep("/bin/bash").count |
| Return true if the number when count all lines that dosn't contain "nologin" and contain "/bin/bash" is greater than 0 | result.grep_v("nologin").grep("/bin/bash").count.gt 0 |
Boolean functions:
| Function | Description |
|---|---|
| result.eq(VALUE) | Result equal to VALUE |
| result.neq(VALUE) | Result not equal to VALUE |
| result.gt(VALUE) | Result greater than VALUE |
| result.ge(VALUE) | Result equal or greater than VALUE |
| result.lt(VALUE) | Result lesser than VALUE |
| result.le(VALUE) | Result equal or lesser than VALUE |
Filtering functions:
| Function | VALUE type | Description |
|---|---|---|
| result.count | Count lines from result and save this number into result object. | |
| result.first | Remove all lines except first one. | |
| result.find(VALUE) | String | Filter lines that contains VALUE text |
| RegExp | Filter lines that match VALUE regexp. For example /?ello], filter lines with "Hello" or "hello" |
|
| Array | Apply filter to every array element. For example ["Hi","Hello"], filter lines with "Hi" or "Hello". |
|
| result.grep(VALUE) | String, RegExp, Array | Same as find |
| result.grep_v(VALUE) | String, RegExp, Array | Same as not_find |
| result.last | Remove all lines except last one. | |
| result.not_find(VALUE) | Filter lines that not contains VALUE. VALUE may be String, Regular Expresion or an Array. | |
| result.restore | Restore result data. After every filtering action result is modified, but this function restore data to their original state. |
Information functions:
| Function | Description |
|---|---|
| result.alterations | Return transformations applied to the output |
| result.content | Return all output lines |
| result.debug | Print the result content on screen. Usefull for debugging process |
| result.value | Return first output line or value |