EXPR(1)

πŸ“¦ version 0.12.0, in arch rolling

πŸ’– EXPR(1) πŸ’–

okay bestie, welcome to EXPR(1) from the General Commands Manual β€” name tag folded in right here, no cap 🫢. This is the page for expr, and it is literally here to print the value of EXPRESSION to standard output. main character energy only πŸ’…βœ¨

🌸 NAME 🌸

expr β€” Print the value of EXPRESSION to standard output. That's the whole gig, and it ate. πŸ’–

✨ SYNOPSIS ✨

Two moods, both iconic:

expr [EXPRESSION]
expr [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

Print the value of EXPRESSION to standard output. No cap, that's the entire point of this icon. πŸŽ€

πŸ’… OPTIONS πŸ’…

  • --version β€” output version information and exit.
  • --help β€” display this help and exit.
  • [expression] β€” the expression goes here, brackets kept exactly like the page lists them. πŸ“

🌈 EXTRA 🌈

A blank line below separates increasing precedence groups.

So when you see the blank lines, that's the precedence glow-up happening. ⭐

πŸ‘‘ EXPRESSION may be: πŸ‘‘

  • ARG1 | ARG2 β€” ARG1 if it is neither null nor 0, otherwise ARG2.
  • ARG1 & ARG2 β€” ARG1 if neither argument is null or 0, otherwise 0.
  • ARG1 < ARG2 β€” ARG1 is less than ARG2.
  • ARG1 <= ARG2 β€” ARG1 is less than or equal to ARG2.
  • ARG1 = ARG2 β€” ARG1 is equal to ARG2.
  • ARG1 != ARG2 β€” ARG1 is unequal to ARG2.
  • ARG1 >= ARG2 β€” ARG1 is greater than or equal to ARG2.
  • ARG1 > ARG2 β€” ARG1 is greater than ARG2.
  • ARG1 + ARG2 β€” arithmetic sum of ARG1 and ARG2.
  • ARG1 - ARG2 β€” arithmetic difference of ARG1 and ARG2.
  • ARG1 * ARG2 β€” arithmetic product of ARG1 and ARG2.
  • ARG1 / ARG2 β€” arithmetic quotient of ARG1 divided by ARG2.
  • ARG1 % ARG2 β€” arithmetic remainder of ARG1 divided by ARG2.
  • STRING : REGEXP β€” anchored pattern match of REGEXP in STRING.
  • match STRING REGEXP β€” same as STRING : REGEXP.
  • substr STRING POS LENGTH β€” substring of STRING, POS counted from 1.
  • index STRING CHARS β€” index in STRING where any CHARS is found, or 0.
  • length STRING β€” length of STRING.
  • + TOKEN β€” interpret TOKEN as a string, even if it is a keyword like match or an operator like /.
  • ( EXPRESSION ) β€” value of EXPRESSION.
⚠️ Beware that many operators need to be escaped or quoted for shells.

Comparisons are arithmetic if both ARGs are numbers, else lexicographical. Pattern matches return the string matched between \( and \) or null; if \( and \) are not used, they return the number of characters matched or 0. This is the part where shell quoting is your bestie, not your enemy. πŸ’€

🚦 Exit status 🚦

Exit status is 0 if EXPRESSION is neither null nor 0, 1 if EXPRESSION is null or 0, 2 if EXPRESSION is syntactically invalid, and 3 if an error occurred. Periodt. πŸ’…

🧚 Environment variables: 🧚

  • EXPR_DEBUG_TOKENS=1: dump expression's tokens
  • EXPR_DEBUG_RPN=1: dump expression represented in reverse polish notation
  • EXPR_DEBUG_SYA_STEP=1: dump each parser step
  • EXPR_DEBUG_AST=1: dump expression represented abstract syntax tree

Errors are reported with the expression echoed back and a caret under the offending argument whenever stderr is a terminal; anything else reading stderr gets the usual single-line message. So if your terminal is getting the fancy caret treatment, that's the vibe β€” otherwise it's the usual single-line message, iykyk. 🫢

πŸ‘‘ VERSION πŸ‘‘

v(uutils coreutils) 0.12.0

this iconic page is serving source/version v(uutils coreutils) 0.12.0 and is dated 2026-09-17 β€” mwah, bestie πŸ’–πŸ«Ά

πŸ“¦ where this page comes from