Skip to main content

Command Palette

Search for a command to run...

Learning the Basics of Bash Scripting

Published
4 min readView as Markdown
Learning the Basics of Bash Scripting

Learning the Basics of Bash Scripting

Bash scripting is an essential skill for developers, system administrators, and anyone working in a Unix/Linux environment. It allows you to automate repetitive tasks, manage system operations, and improve productivity. In this guide, we’ll cover the fundamentals of Bash scripting, from writing your first script to using loops, conditionals, and functions.

What is Bash?

Bash (Bourne Again SHell) is a command-line interpreter and scripting language used in Linux and macOS. It is an enhanced version of the original Bourne Shell (sh) and provides powerful features for scripting and automation.

Why Learn Bash Scripting?

  • Automation – Save time by scripting repetitive tasks.

  • System Administration – Manage servers and workflows efficiently.

  • Developer Productivity – Automate builds, deployments, and testing.

Writing Your First Bash Script

A Bash script is a plain text file containing a series of commands. To create one:

  1. Open a text editor (e.g., nano, vim, or VS Code).

  2. Start with a shebang (#!) to specify the interpreter:

bash

Copy

Download

#!/bin/bash
  1. Add your commands:

bash

Copy

Download

#!/bin/bash
echo "Hello, World!"
  1. Save the file with a .sh extension (e.g., hello.sh).

  2. Make it executable:

bash

Copy

Download

chmod +x hello.sh
  1. Run the script:

bash

Copy

Download

./hello.sh

You should see:

Copy

Download

Hello, World!

Variables in Bash

Variables store data for use in scripts.

Defining Variables

bash

Copy

Download

name="John"
age=25

Accessing Variables

Use $ before the variable name:

bash

Copy

Download

echo "My name is $name and I am $age years old."

Command Substitution

Store the output of a command in a variable:

bash

Copy

Download

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

User Input

Use read to get input from the user:

bash

Copy

Download

echo "What's your name?"
read username
echo "Hello, $username!"

Conditional Statements

Bash supports if, elif, and else for decision-making.

Basic If-Else

bash

Copy

Download

if [ "$age" -ge 18 ]; then
    echo "You are an adult."
else
    echo "You are a minor."
fi

File Checks

Test if a file exists:

bash

Copy

Download

if [ -f "example.txt" ]; then
    echo "File exists."
else
    echo "File not found."
fi

Loops

Loops help automate repetitive tasks.

For Loop

bash

Copy

Download

for i in {1..5}; do
    echo "Number: $i"
done

While Loop

bash

Copy

Download

count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    ((count++))
done

Functions

Functions group commands for reuse.

Defining a Function

bash

Copy

Download

greet() {
    echo "Hello, $1!"
}

Calling a Function

bash

Copy

Download

greet "Alice"

Output:

Copy

Download

Hello, Alice!

Working with Files

Bash provides commands to manipulate files.

Reading a File Line by Line

bash

Copy

Download

while IFS= read -r line; do
    echo "$line"
done < "example.txt"

Writing to a File

bash

Copy

Download

echo "This is a new line." >> example.txt

Exit Codes

Every command returns an exit code (0 for success, non-zero for failure).

bash

Copy

Download

if grep -q "error" logfile.txt; then
    echo "Error found!"
    exit 1
else
    echo "No errors."
    exit 0
fi

Debugging Bash Scripts

Use -x to debug:

bash

Copy

Download

bash -x script.sh

Or add set -x inside the script:

bash

Copy

Download

#!/bin/bash
set -x
echo "Debug mode enabled."

Best Practices

  1. Use Comments – Explain complex logic.

  2. Quote Variables – Prevents word splitting.

  3. Check for Errors – Use set -e to exit on failure.

  4. Use Functions – Keep code modular.

Conclusion

Bash scripting is a powerful tool for automating tasks in Unix/Linux environments. By mastering variables, loops, conditionals, and functions, you can write efficient scripts to streamline your workflow.

If you're looking to grow your YouTube channel, consider using MediaGeneous, a great platform for social media promotion and marketing.

For further reading, check out:

Happy scripting! 🚀

More from this blog

MediaGeneous

74 posts