Using a declare command for arithmetic in Linux shell

April 06, 2021

Whenever we declare any variable, by default, this variable stores the string type of data. We cannot do arithmetic operations on them. We can declare a variable as an integer by using the declare command. Such variables are declared as integers; if we try to assign a string to them, then bash assigns 0 to these variables.

Bash will report an error if we try to assign fractional values (floating points) to integer variables.

We can create an integer variable called value, shown as follows:

$ declare -i value

We tell the shell that the variable value is of type integer. Otherwise, the shell treats all variables as character strings:

  • If we try to assign the name string to the integer variable value, then the value variable will be assigned the 0 value by the Bash shell:
$ value=name$ echo $value0
  • We need to enclose numbers between double quotes, otherwise we should not use a space in arithmetic expressions:
$ value=4 + 4bash: +: command not found
  • When we remove white spaces, the error also gets removed, and the arithmetic operation takes place:
$ value=4+4$ echo $value8
  • We can perform a multiplication operation as follows:
$ value=4*3$ echo $value12$ value="4 * 5"$ echo $value20
  • Since we have enclosed numbers in "", the multiplication operation is performed. Due to double quotes (""), the * operator was not used as a wildcard (*):
$ value=5.6bash: 5.6: syntax error: invalid arithmetic operator (error token is ".6").

Since we have declared the value variable as an integer variable, when we initialize the variable with a floating point number, the error gets displayed by the Bash shell.

Listing integers

If we want to see all declared integer variables along with their values, then we must give the following command:

$ declare -i

This should produce the following output:

declare -ir BASHPID=""declare -ir EUID="1001"declare -i HISTCMD=""declare -i LINENO=""declare -i MAILCHECK="60"declare -i OPTIND="1"declare -ir PPID="1966"declare -i RANDOM=""declare -ir UID="1001"

Related Articles

Calculating and reducing the runtime of a script

In this article, we are going to learn how to calculate and reduce the script’s runtime. A simple time command will help in calculating the execution time.PrerequisitesBesides having a terminal open, make sure you have the necessary scripts present in your...

read more

Lorem ipsum dolor sit amet consectetur


Submit a Comment

Your email address will not be published. Required fields are marked *

five × 4 =