Calculating the sum of two integers (numbers) in a shell script is pretty simple as in other programming languages. Bash shell provides a command-line utility called expr to evaluate expressions. The latest version of the Bash shell also includes the functionality to evaluate expressions directly with the shell.

Advertisement

In this tutorial, we will discuss a few methods to calculate the sum of the two numbers in a bash script.

1. Bash – Adding Two Numbers

The expr is the command-line utility used for evaluating mathematical expressions. Bash shell also supports evaluating the mathematical expressions directly.

Use the following syntax to calculate the sum of two integers in a shell script:

  • Using expr command with backquotes (` `):
    
    sum=`expr $num1 + $num2`
    
    
  • Use expr command enclosed with brackets and start with dollar symbol:
    
    sum=$(expr $num1 + $num2)
    
    
  • This is my preferred way to directly with the shell:
    
    sum=$(($num1 + $num2))
    
    

In the next few examples, we will discuss calculating the sum of numbers directly with a shell. You can also choose expr command to give the syntax above.

2. Calculate Sum in Shell Script

Bash shell also evaluates the mathematical expressions directly. You just need to write the expressions enclosed in double brackets with a dollar like $((...)).

Write an example shell script to initialize two numeric variables. Then perform an addition operation on both values and store results in the third variable.


#!/bin/bash
# Calculate the sum of two integers with pre initialize values
# in a shell script

# Initialize two variables with number
a=10
b=20

# Calculate sum
sum=$(( $a + $b ))

# Display the result
echo "Sum is: $sum"

Output:

Sum is: 30

3. Calculate Sum with Command Line Arguments

In this second example, the shell script reads two numbers as command line parameters and performs the addition operation.


#!/bin/bash
# Calculate the sum via command-line arguments
# $1 and $2 refers to the first and second argument passed as command-line arguments

# Calculate sum
sum=$(( $1 + $2 ))

# Display the result
echo "Sum is: $sum"   

Let’s execute this script is a shell

./sum.sh 12 14        # Executing script 

Sum is: 26

4. Calculate Sum with Run Time Input

Here is another example of a shell script, which takes input from the user at run time. Then calculate the sum of given numbers and store to a variable and show the results.


#!/bin/bash

# Take input from user and calculate sum.
read -p "Enter first number: " num1
read -p "Enter second number: " num2
 
# Calculate sum
sum=$(( $num1 + $num2 ))

# Display the result
echo "Sum is: $sum"   

Output:

Enter first number: 12
Enter second number: 15
Sum is: 27

Conclusion

In conclusion, we have explored different methodologies to handle a fundamental yet crucial aspect of programming—calculating the sum of two integers—in the context of Bash shell scripting. This knowledge is fundamental in the realm of shell scripting, which offers a powerful way to automate tasks, and the techniques covered here form the building blocks for more complex script-based operations.

Share.

4 Comments

  1. code :
    echo -n “enter the num1 ==> ”
    read num1
    echo -n “enter the num2 ==> ”
    read num2
    sum =$(( $num1 + $num2 ))
    echo “the sum of $num1 and $num2 is ==> $sum”

    i have written this code but it shows me some errors so can you help me ?

    error :
    enter the num1 ==> 10
    enter the num2 ==> 20
    sum: ‘=30’: No such file or directory
    the sum of 10 and 20 is ==>

    • Hi Dixit,
      Remove space after “sum variable”

      sum=$(( $num1 + $num2 ))
      

      The full script should be

      echo -n "enter the num1 ==> "
      read num1
      echo -n "enter the num2 ==> "
      read num2
      sum=$(( $num1 + $num2 ))
      echo "the sum of $num1 and $num2 is ==> $sum"
      
Leave A Reply

Exit mobile version