Bash Subtraction

In Bash scripting, you can perform arithmetic subtraction using arithmetic expansion, the expr command, and the let command. Subtraction is a fundamental arithmetic operation that allows you to calculate the difference between two numbers.

In this tutorial, we’ll guide you through the different methods of performing subtraction in Bash with detailed examples and scenarios.

For a quick overview of the Arithmetic Operations in Bash, you may refer Bash Arithmetic Operations.


Syntax for Subtraction in Bash

The syntax for performing subtraction in Bash can vary depending on the method used. Here are the common approaches:

Subtraction using Arithmetic Expansion:

</>
Copy
$((a - b))

Subtraction using expr:

</>
Copy
expr a - b

Subtraction using let:

</>
Copy
let result=a-b

Subtraction using bc (for floating-point subtraction):

</>
Copy
echo "a - b" | bc

Examples of Subtraction in Bash

Let’s go through different examples to see how subtraction can be performed using these methods.


1. Bash Subtraction Using Arithmetic Expansion

Arithmetic expansion is the simplest and most common way to perform subtraction in Bash. It uses the $((...)) syntax to evaluate the expression.

example.sh

</>
Copy
#!/bin/bash

# Define two numbers
num1=30
num2=10

# Perform subtraction
difference=$((num1 - num2))

# Display the result
echo "The difference between $num1 and $num2 is $difference."

Output

Bash Subtraction Using Arithmetic Expansion

In this example, the subtraction is performed using $((num1 - num2)), and the result is stored in the variable difference.


2. Bash Subtraction Using expr

The expr command is another way to perform arithmetic operations in Bash. It is an older method but still commonly used.

example.sh

</>
Copy
#!/bin/bash

# Define two numbers
num1=50
num2=20

# Perform subtraction using expr
difference=$(expr $num1 - $num2)

# Display the result
echo "The difference between $num1 and $num2 using expr is $difference."

Output

Bash Subtraction Using expr

In this example, we use expr to subtract num1 and num2. Note that the spaces around the - operator are required when using expr.


3. Bash Subtraction Using let

The let command allows you to perform arithmetic operations without using $((...)). It is a simple and efficient method for integer subtraction.

example.sh

</>
Copy
#!/bin/bash

# Define two numbers
num1=25
num2=5

# Perform subtraction using let
let difference=num1-num2

# Display the result
echo "The difference between $num1 and $num2 using let is $difference."

Output

Bash Subtraction Using let

Best Practices for Subtraction in Bash

  • Use $((...)) for simple integer subtraction as it is efficient and easy to use.
  • Prefer bc for floating-point arithmetic to handle decimal values accurately.
  • Validate user input to ensure it contains numeric values before performing subtraction.
  • Handle edge cases like subtraction resulting in a negative value if needed.