Magazine

Using a Declare Command for Arithmetic

Posted on the 06 April 2021 by Satish Kumar @satish_kumar86

Whenever wedeclareany variable, by default, this variable stores the string type of data. We cannot doarithmeticoperations on them. We can declare a variable as an integer by using thedeclarecommand. Such variables are declared as integers; if we try to assign a string to them, then bash assigns0 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 calledvalue, 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 thenamestring to the integer variablevalue, then thevaluevariable will be assigned the0value 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 removewhitespaces, the error also gets removed, and thearithmeticoperation 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"

You Might Also Like :

Back to Featured Articles on Logo Paperblog

These articles might interest you :