In this section, we will cover the basic operators used in Bash scripting. Operators are essential for performing various operations on variables and values. We will explore arithmetic, relational, logical, and assignment operators.
Types of Operators
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
- Arithmetic Operators
Arithmetic operators are used to perform basic mathematical operations.
| Operator | Description | Example |
|---|---|---|
+ |
Addition | expr 3 + 2 |
- |
Subtraction | expr 3 - 2 |
* |
Multiplication | expr 3 \* 2 |
/ |
Division | expr 6 / 2 |
% |
Modulus (remainder) | expr 5 % 2 |
Example:
#!/bin/bash
# Arithmetic operations
a=10
b=5
sum=$((a + b))
diff=$((a - b))
prod=$((a * b))
quot=$((a / b))
mod=$((a % b))
echo "Sum: $sum"
echo "Difference: $diff"
echo "Product: $prod"
echo "Quotient: $quot"
echo "Modulus: $mod"
- Relational Operators
Relational operators are used to compare two values. They return true or false based on the comparison.
| Operator | Description | Example |
|---|---|---|
-eq |
Equal to | [ $a -eq $b ] |
-ne |
Not equal to | [ $a -ne $b ] |
-gt |
Greater than | [ $a -gt $b ] |
-lt |
Less than | [ $a -lt $b ] |
-ge |
Greater than or equal | [ $a -ge $b ] |
-le |
Less than or equal | [ $a -le $b ] |
Example:
#!/bin/bash
# Relational operations
a=10
b=5
if [ $a -eq $b ]; then
echo "$a is equal to $b"
else
echo "$a is not equal to $b"
fi
if [ $a -gt $b ]; then
echo "$a is greater than $b"
else
echo "$a is not greater than $b"
fi
- Logical Operators
Logical operators are used to combine multiple conditions.
| Operator | Description | Example |
|---|---|---|
&& |
Logical AND | [ $a -gt 0 ] && [ $b -gt 0 ] |
| ` | ` | |
! |
Logical NOT | [ ! $a -gt 0 ] |
Example:
#!/bin/bash
# Logical operations
a=10
b=5
if [ $a -gt 0 ] && [ $b -gt 0 ]; then
echo "Both $a and $b are greater than 0"
fi
if [ $a -gt 0 ] || [ $b -gt 0 ]; then
echo "At least one of $a or $b is greater than 0"
fi
if [ ! $a -lt 0 ]; then
echo "$a is not less than 0"
fi
- Assignment Operators
Assignment operators are used to assign values to variables.
| Operator | Description | Example |
|---|---|---|
= |
Assign | a=10 |
+= |
Add and assign | a+=5 |
-= |
Subtract and assign | a-=5 |
*= |
Multiply and assign | a*=5 |
/= |
Divide and assign | a/=5 |
%= |
Modulus and assign | a%=5 |
Example:
#!/bin/bash
# Assignment operations
a=10
echo "Initial value: $a"
a+=5
echo "After a+=5: $a"
a-=3
echo "After a-=3: $a"
a*=2
echo "After a*=2: $a"
a/=4
echo "After a/=4: $a"
a%=3
echo "After a%=3: $a"Practical Exercises
Exercise 1: Basic Arithmetic Operations
Write a script that takes two numbers as input and performs all arithmetic operations on them.
Solution:
#!/bin/bash
# Basic Arithmetic Operations
read -p "Enter first number: " num1
read -p "Enter second number: " num2
sum=$((num1 + num2))
diff=$((num1 - num2))
prod=$((num1 * num2))
quot=$((num1 / num2))
mod=$((num1 % num2))
echo "Sum: $sum"
echo "Difference: $diff"
echo "Product: $prod"
echo "Quotient: $quot"
echo "Modulus: $mod"Exercise 2: Relational and Logical Operations
Write a script that takes two numbers as input and checks if both are positive, if at least one is positive, and if neither is positive.
Solution:
#!/bin/bash
# Relational and Logical Operations
read -p "Enter first number: " num1
read -p "Enter second number: " num2
if [ $num1 -gt 0 ] && [ $num2 -gt 0 ]; then
echo "Both numbers are positive"
elif [ $num1 -gt 0 ] || [ $num2 -gt 0 ]; then
echo "At least one number is positive"
else
echo "Neither number is positive"
fiConclusion
In this section, we covered the basic operators in Bash, including arithmetic, relational, logical, and assignment operators. Understanding these operators is crucial for performing various operations in your scripts. Practice the exercises provided to reinforce your understanding and prepare for more advanced scripting topics.
Bash Programming Course
Module 1: Introduction to Bash
Module 2: Basic Bash Commands
- File and Directory Operations
- Text Processing Commands
- File Permissions and Ownership
- Redirection and Piping
