The `let` command in Linux is a powerful tool used for evaluating arithmetic expressions on shell variables. It supports various operators and functionalities to perform calculations and manipulate values.
Syntax of `let` command in Linux
The basic syntax of the `let` is as follows.
let [expression]
Here, [expression] represents the arithmetic expression to be evaluated.
Options available in `let` command
Basic arithmetic operators
The addition(+), subtraction(-), multiplication(*), division(/) and modulus(%) operators can be used in the expression with the let command.
Example:
let "myvar =2" "myvar1=1" "myvar2=myvar1+myvar"; echo $myvar2
let "myvar =2" "myvar1=1" "myvar2=myvar1-myvar"; echo $myvar2
let "myvar =2" "myvar1=1" "myvar2=myvar1*myvar"; echo $myvar2
let "myvar =2" "myvar1=1" "myvar2=myvar1/myvar"; echo $myvar2
let "myvar =2" "myvar1=1" "myvar2=myvar1%myvar"; echo $myvar2
Post-increment(var++) / post-decrement(var–) operator:
This operator is used to interpret the integer value then increase/decrease the integer variable by 1.
Example:
let "myvar=2" "myvar2=myvar++" ; echo $myvar $myvar2
The above example, myvar2 gets the value of myvar2 before the increment occurs.
Pre-increment(++var) / Pre-decrement(–var) operator:
This operator increases/decreases the integer value by 1 and then interprets the integer variable.
Example:
let "myvar=10" "myvar2=--myvar"; echo $myvar $myvar2
In the above example, the change in value occurs first then the value gets stored in myvar2.
Unary plus(+exp) / Unary minus(-exp):
This operator is used to multiply a given expression by 1 or -1.
Example:
In the above example, the value of myvar changes from positive to negative with unary minus operator.
Bit-wise negation (~) :
This operator is used to negate every bit of the integer value i.e., turns 0 to 1 and 1 to 0.
Example:
let "myvar=0" "myvar= ~myvar"; echo $myvar
In the above example, the value myvar is ‘0000…00’ in binary while the negation is ‘1111…11’ which is the 2’s complement value of -1.
Exponent (**) operator :
This operator is used to raise one quantity to the power of another.
Example:
let "myvar= 5 ** 2" ; echo $myvar
Bitwise shift left / Bitwise shift right :
This operator is used to shift the order of the bits either to the left or right.
Example:
let "myvar = 5 << 2"; echo $myvar
Bitwise AND operator:
This operator does a bitwise comparison between two bits and returns 1 if both are 1 else returns 0.
Example:
let "myvar=5" "myvar2=4" "myvar3 = myvar & myvar2" ; echo $myvar3
Bitwise OR operator:
This operator makes a bitwise comparison between two bits and returns 1 if atleast one the bits is 1, else returns 0.
Example:
let "myvar=7" "myvar2=4" "myvar3= myvar | myvar2" ; echo $myvar3
Bitwise XOR operator:
This operator does a bitwise comparison between two bits and returns 0 if they are alike, else returns 1.
Example:
let "myvar=7" "myvar2=4" "myvar3= myvar ^ myvar2" ; echo $myvar3
Conclusion
In this article we have discussed `let` command in Linux which is used in evaluation of arithmetic expressions on shell variables. By understanding the syntax and utilizing the various options available with the `let` command, we can leverage its power to handle complex arithmetic operations within the Linux command line environment.