Skip to Content

Introduction to Bash Scripting: A Beginner's Guide

Introduction to Bash Scripting: A Beginner's Guide

Bash scripting is an essential skill for anyone working with Linux, automation, or cybersecurity. Whether you want to automate tasks, manage servers, or dive into ethical hacking, understanding Bash scripting can save you time and effort.

In this guide, we’ll cover the fundamentals of Bash scripting, including variables, command substitution, conditional statements, loops, and functions.

1. Getting Started with Bash

Every Bash script starts with a shebang line, which tells the system to execute the script using Bash:

#!/bin/bash

Save your script with a .sh extension and make it executable using:

chmod +x script.sh
./script.sh

2. Variables in Bash

Variables allow us to store and manipulate data:

A="Nukerah"
B="Network"
echo "Welcome to $A $B"

To unset a variable, use:

unset A

3. Command Substitution

Command substitution allows us to store the output of a command in a variable:

current_date=$(date)
echo "Today's date is $current_date"

Alternatively, use backticks:

current_date=`date`

4. Handling Arguments

Bash scripts can accept arguments from the command line:

  • $0 - Name of the script
  • $1, $2, $3... - Arguments passed to the script
  • $# - Number of arguments
  • $$ - Process ID of the script

Example:

#!/bin/bash
echo "Script Name: $0"
echo "First Argument: $1"
echo "Process ID: $$"

Run it as:

./script.sh arg1

5. Conditional Statements

Bash supports if, else, and elif statements for decision-making:

#!/bin/bash
a=10
if [ $a -eq 10 ]
then
  echo "a is 10"
else
  echo "a is not 10"
fi

Comparison Operators:

  • -eq (equal to)
  • -lt (less than)
  • -gt (greater than)
  • || (OR)
  • && (AND)

6. Loops in Bash

For Loop

for i in $(seq 1 10); do echo "Number $i"; done

or

for item in apple banana cherry
do
  echo "Fruit: $item"
done

While Loop

#!/bin/bash
n=1
while [ $n -lt 11 ]
do
  echo "Hello $n"
  ((n++))
done

7. Functions in Bash

Functions allow code reuse and modular scripting:

#!/bin/bash
name() {
  echo "Hi $1"
}

Calling a function:

name "0xMal0rM0d3"
name "The End"

8. Hands-On Project: Building a Simple Bash Automation Tool

To demonstrate the power of Bash scripting, let's build a simple tool that automates basic system tasks. This tool will:

  • Display system information (hostname, uptime, memory usage)
  • Accept user arguments
  • Use loops to iterate over multiple tasks
  • Implement conditionals to handle errors
  • Use functions to structure the script better

Step 1: Create the Script File

touch my_tool.sh
chmod +x my_tool.sh
nano my_tool.sh

Step 2: Write the Script

#!/bin/bash

echo "Welcome to the Bash Automation Tool"

echo "Checking system information..."

echo "Hostname: $(hostname)"
echo "Uptime: $(uptime -p)"
echo "Memory Usage:"
free -h

echo "----------------------------------"

echo "Provide your name:"
read user_name
echo "Hello, $user_name!"

# Function to check disk usage
check_disk() {
  echo "Checking disk space..."
  df -h | grep '^/dev'
}

check_disk

echo "Thank you for using this tool!"

Step 3: Run the Script

./my_tool.sh

This project covers key Bash scripting concepts and provides hands-on practice. Try modifying the script by adding more functionality!

Conclusion

Bash scripting is a powerful skill that can simplify your workflow, automate repetitive tasks, and enhance your Linux experience. Whether you are a beginner or an advanced user, mastering Bash can help you become more efficient in managing systems and executing commands.

Start experimenting with these scripts, and soon you'll be writing your own automation tools!

Stay tuned for more Bash scripting tips! 🚀

My OSCP study notes from Nakerah Network