Skip to main content


Laurence MorganAbout 1 min


Returns true or false depending on whether multiple conditions are met


Returns a boolean results (true or false) depending on whether all of the code-blocks included as parameters are successful or not.


and { code-block } { code-block } -> <stdout>

!and { code-block } { code-block } -> <stdout>

and supports as many or as few code-blocks as you wish.


if { and { = 1+1==2 } { = 2+2==4 } { = 3+3==6 } } then {
    out The laws of mathematics still exist in this universe.


and does not set the exit number on failure so it is safe to use inside a try or trypipe block.

If and is prefixed by a bang then it returns true only when all code-blocks are unsuccessful.

Code-Block Testing

  • and tests all code-blocks up until one of the code-blocks is unsuccessful, then and exits and returns false.

  • !and tests all code-blocks up until one of the code-blocks is successful, then !and exits and returns false (ie !and is noting every code-block).


  • and
  • !and

See Also

  • ! (not): Reads the STDIN and exit number from previous process and not's it's condition
  • catch: Handles the exception code raised by try or trypipe
  • false: Returns a false value
  • if: Conditional statement to execute different blocks of code depending on the result of the condition
  • or: Returns true or false depending on whether one code-block out of multiple ones supplied is successful or unsuccessful.
  • true: Returns a true value
  • try: Handles non-zero exits inside a block of code
  • trypipe: Checks for non-zero exits of each function in a pipeline

This document was generated from builtins/core/structs/andor_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan,Laurence,Laurence Morgan,Olivier Refalo