30 Bash Script Examples
In this article, we will explore 30 practical and easy-to-understand examples of Bash scripts, along with detailed explanations and code snippets.
Hello World
Letās start with a classic example - the āHello Worldā script. Open your
favorite text editor and create a new file called hello.sh
. Type the following
code:
#!/bin/bash
echo "Hello, World!"
Save the file and open your terminal. Navigate to the directory where you saved the script and run the following command:
bash hello.sh
The script will print āHello, World!ā to the terminal.
Variables and User Input
Bash allows you to declare variables and interact with users. Hereās an example that prompts the user for their name and then displays a personalized greeting:
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name! Nice to meet you."
Arithmetic Operations
Bash can perform basic arithmetic operations. Letās create a script that adds two numbers:
#!/bin/bash
echo "Enter the first number:"
read num1
echo "Enter the second number:"
read num2
sum=$((num1 + num2))
echo "The sum is: $sum"
Conditional Statements
Conditional statements allow you to perform different actions based on certain conditions. Hereās an example that checks if a number is positive, negative, or zero:
#!/bin/bash
echo "Enter a number:"
read num
if ((num > 0)); then
echo "The number is positive."
elif ((num < 0)); then
echo "The number is negative."
else
echo "The number is zero."
fi
Loops
Loops are used to repeat a block of code multiple times. Hereās an example of a
for
loop that prints the numbers from 1 to 5:
#!/bin/bash
for ((i=1; i<=5; i++)); do
echo $i
done
File Operations
Bash provides powerful tools for working with files. Letās create a script that checks if a file exists and displays its content if it does:
#!/bin/bash
echo "Enter a file name:"
read -r filename
if [ -f $filename ]; then
echo "File exists. Here is its content:"
cat $filename
else
echo "File not found."
fi
String Manipulation
Bash allows you to manipulate strings easily. Hereās an example that converts a string to uppercase:
#!/bin/bash
echo "Enter a string:"
read input
uppercase=$(echo $input | tr '[:lower:]' '[:upper:]')
echo "Uppercase: $uppercase"
Command-Line Arguments
You can pass arguments to a Bash script when running it from the command line. Hereās an example that prints all the arguments passed to the script:
#!/bin/bash
echo "Arguments: $@"
Save the script as args.sh
and run it with the following command:
bash args.sh arg1 arg2 arg3
The script will output: āArguments: arg1 arg2 arg3ā.
Functions
allowFunctions you to group code and reuse it. Hereās an example of a function that calculates the factorial of a number
#!/bin/bash
factorial() {
local n=$1
if [ $n -eq 0 ]; then
return 1
else
return $(($n * $(factorial $(($n-1)))))
fi
}
Hereās an example usage of the function:
$ factorial 5
120
Environment Variables
Bash provides access to various environment variables that hold information about the system. Hereās an example that displays the current userās username:
#!/bin/bash
echo "Current user: $USER"
Exit Status
Every command in Bash returns an exit status. A of 0 value indicates success, while non-zero values indicate failure. Hereās an example that checks the exit status of a command:
#!/bin/bash
ls
if [ $? - eq0 ]; then
echo "Command executed successfully."
else
echo "Command failed."
fi
Reading from a File
Bash allows you to read data from a file and process it. Hereās an example that reads a file line by line and displays its content:
#!/bin/bash
echo "Enter a file name:"
read filename
while IFS= read -r line; do
echo "$line"
done < $filename
Writing to a File
You can also write data to a file using Bash. Hereās an example that prompts the user for input and saves it to a file:
#!/bin/bash
echo "Enter some text:"
read input
echo $input > output.txt
echo "Text saved to output.txt"
Command Substitution
Bash allows you to execute a command and use its output as part of another command. Hereās an example that counts the number of files in a directory:
#!/bin/bash
count=$(ls | wc -l)
echo "Number of files: $count"
Redirecting Output
You can redirect the output of a command to a file or another command. Hereās an example that redirects the output of a command to a file:
#!/bin/bash
ls > files.txt
echo "Output redirected to files.txt"
Pipes
Pipes allow you to connect multiple commands together, with the output of one command serving as the input for the next. Hereās an example that lists the files in a directory and sorts them alphabetically:
#!/bin/bash
ls | sort
Arrays
Bash supports arrays, which allow you to store multiple values in a single variable. Hereās an example that declares an array and prints its elements:
#!/bin/bash
fruits=("Apple" "Banana" "Orange")
echo "Fruits: ${fruits[@]}"
Case Statement
The case statement is useful for performing different actions based on multiple conditions. Hereās an example that checks the day of the week:
#!/bin/bash
# Set the day of the week
day=$(date +%u)
# Use a case statement to perform different actions based on the day of the week
case $day in
# Monday
1) echo "It's Monday!";;
# Tuesday
2) echo "It's Tuesday!";;
# Wednesday
3) echo "It's Wednesday!";;
# Thursday
4) echo "It's Thursday!";;
# Friday
5) echo "It's Friday!";;
# Saturday
6) echo "It's Saturday!";;
# Sunday
7) echo "It's Sunday!";;
esac
Process Management
Bash allows you to manage processes on your system. Hereās an example that lists all running processes:
#!/bin/bash
ps -ef
File Permissions
Bash provides tools for managing file permissions. Hereās an example that changes the permissions of a file to read-only:
#!/bin/bash
echo "Enter a file name:"
read filename
chmod 400 $filename
String Comparison
Bash allows you to compare strings for equality or alphabetical order. Hereās an example that compares two strings:
#!/bin/bash
string1="Hello"
string2="World"
if [ $string1 == $string2 ]; then
echo "The strings are equal."
else
echo "The strings are not equal."
fi
Math Operations
Bash can perform various mathematical operations. Hereās an example that calculates the square root of a number:
#!/bin/bash
echo "Enter a number:"
read num
sqrt=$(awk "BEGIN { print sqrt($num) }")
echo "Square root: $sqrt"
Networking
Bash provides tools for networking tasks. Hereās an example that pings a remote server:
#!/bin/bash
echo "Enter a hostname or IP address:"
read host
ping -c 4 $host
String Length
You can determine the length of a string using Bash. Hereās an example that prints the length of a#!/bin string:
#!/bin/bash
echo "Enter a string:"
read input
length=${#input}
echo "Length: $length"
Random Numbers
Bash can generate random numbers. Hereās an example that generates a random number between 1 and 100:
#!/bin/bash
random=$(shuf -i 1-100 -n 1)
echo "Random number: $random"
Cron Jobs
Cron jobs allow you to schedule tasks to run at specific times. Hereās an example that runs a script every day at 8:00 AM:
#!/bin/bash
echo "0 8 * * * bash script.sh" | crontab -
echo "Cron job created."
Error Handling
Bash allows you to handle errors and exceptions. Hereās an example that catches errors and displays a custom message:
#!/bin/bash
command_that_may_fail
if [ $? -ne 0 ]; then
echo "An error occurred."
fi
Sending Email
Bash can send email using the mail
command. Hereās an example that sends an
email:
#!/bin/bash
echo "Subject: Test Email" | mail -s "Test Email" user@example.com
echo "Email sent."
Regular Expressions
Bash supports regular expressions for pattern matching. Hereās an example that checks if a string matches a pattern:
#!/bin/bash
echo "Enter a string:"
read input
if [[ $input =~ ^[0-9]+$ ]]; then
echo "The string contains only digits."
else
echo "The string does not contain only digits."
fi
Exiting a Script
You can exit a Bash script at any point using the exit
command. Hereās an
example that exits the script if a condition is not:
#!/bin/bash
# Check if the input parameter is not empty
if [[ -z $1 ]]; then
echo "Error: No input parameter provided"
exit 1
fi
# Do something with the input parameter
echo "Processing input parameter: $1"
Congratulations! You have explored 30 practical examples of Bash scripts. These examples cover a wide range of topics, from basic operations to more advanced concepts. By understanding and mastering these examples, you will be well-equipped to automate tasks and streamline your workflow using Bash scripting.
Further Reading
Latest blog posts
Explore the world of programming and cybersecurity through our curated collection of blog posts. From cutting-edge coding trends to the latest cyber threats and defense strategies, we've got you covered.