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
namestring to the integer variable
value, then the
valuevariable will be assigned the
0value 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
$ 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 (
*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.
$ 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"