Magazine

Using the Let Command for Arithmetic in Linux Shell

Posted on the 07 April 2021 by Satish Kumar @satish_kumar86

We can use the bash built-in command let for performing arithmetic operations. To get more information about let, type the following:

$ help let

This should produce the following output of this command:

satish@backup:/home/satish$ help let
let: let arg [arg ...]
    Evaluate arithmetic expressions.

    Evaluate each ARG as an arithmetic expression.  Evaluation is done in
    fixed-width integers with no check for overflow, though division by 0
    is trapped and flagged as an error.  The following list of operators is
    grouped into levels of equal-precedence operators.  The levels are listed
    in order of decreasing precedence.

        id++, id--      variable post-increment, post-decrement
        ++id, --id      variable pre-increment, pre-decrement
        -, +            unary minus, plus
        !, ~            logical and bitwise negation
        **              exponentiation
        *, /, %         multiplication, division, remainder
        +, -            addition, subtraction
        <<, >>          left and right bitwise shifts
        <=, >=, <, >    comparison
        ==, !=          equality, inequality
        &               bitwise AND
        ^               bitwise XOR
        |               bitwise OR
        &              logical AND
        ||              logical OR
        expr ? expr : expr
                        conditional operator
        =, *=, /=, %=,
        +=, -=, <<=, >>=,
        &=, ^=, |=      assignment

    Shell variables are allowed as operands.  The name of the variable
    is replaced by its value (coerced to a fixed-width integer) within
    an expression.  The variable need not have its integer attribute
    turned on to be used in an expression.

    Operators are evaluated in order of precedence.  Sub-expressions in
    parentheses are evaluated first and may override the precedence
    rules above.

Let’s start using the let command:

$ value=6
$ let value=value+1
$ echo $value7
$ let "value=value+4"
$ echo $value11
$ let "value+=1"#above expression evaluates as value=value+1
$ echo $value12

A summary of operators available with the let command follows:

  • Operation:Operator
  • Unary minus:-
  • Unary plus:+
  • Logical NOT:!
  • Bitwise NOT (negation):~
  • Multiply:*
  • Divide:/
  • Remainder:%
  • Subtract:-
  • Add:+

Prior to Bash 2.x, the following operators were not available:

  • Bitwise left shift:<<
  • Bitwise right shift:>>
  • Equal to and not equal to:==,!=
  • Comparison operators:<=, >=, <, >
  • BitwiseAND:&
  • BitwiseOR:|
  • Bitwise exclusiveOR:^
  • LogicalAND:&
  • LogicalOR:||
  • Assignment and shortcut assignment:= *=/= %= -= += >>= <<= &= |= ^=

Back to Featured Articles on Logo Paperblog