Skip to main content

Command Palette

Search for a command to run...

Getting Started with Bash Scripting: A Beginner's Guide

Updated
3 min read
Getting Started with Bash Scripting: A Beginner's Guide
M

Hello, I’m Badhon. I tend to forget things easily, which is why I started this blog.

Bash is one of the most popular scripting languages, especially loved for its ability to automate tasks effortlessly. While you might not need to master Bash as deeply as a general-purpose language like Python or Java, having a basic understanding can give you an edge in the workplace. In this post, I’ll share some simple Bash scripts that can handle a variety of tasks, helping you to grasp the basics. While tools like ChatGPT can generate Bash scripts for you, being able to tweak them yourself is a valuable skill.

Running Your Bash Scripts

Before running a Bash script, you need to give it execution permission. This can be done with the command chmod +x filename.sh. Once that’s done, you can execute the script by running ./filename.sh.

Shebang: Defining the Interpreter

A Shebang (#!) is used at the beginning of a script to specify the interpreter that should be used to run the file. If you don’t include a Shebang, the script will run with the default interpreter. The Shebang command starts with #!/usr/bin/, followed by the desired interpreter. For instance, if you want the script to run with Python, you would write #!/usr/bin/python3. For Bash, it would be #!/usr/bin/bash. This ensures that your script is executed consistently, regardless of the environment.

Basic Bash Elements

Variables

name="Alice"
age=25
echo "Hello, my name is $name and I am $age years old."

Variables are fundamental in Bash scripting, allowing you to store and reuse data throughout your script.

Conditionals

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

Conditionals let you make decisions in your script based on certain conditions, similar to other programming languages.

Loops

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

Loops help automate repetitive tasks, such as counting or iterating over a set of values.

Functions

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

greet "Bob"

Functions allow you to define reusable blocks of code, making your scripts more modular and easier to maintain.

Arrays

colors=("red" "green" "blue")
echo "The colors are: ${colors[@]}"

Arrays let you store multiple values in a single variable. To access a specific value, replace @ with the index number.

Case Statement

day="Monday"
case $day in
  "Monday")
    echo "Start of the work week.";;
  "Friday")
    echo "Almost the weekend!";;
  *)
    echo "Just another day.";;
esac

A case statement is a great way to handle multiple conditions that depend on the value of a single variable.

While Loop

counter=1
while [ $counter -le 3 ]; do
  echo "Counter is at $counter"
  ((counter++))
done

While loops continue to execute a block of code as long as a specified condition is true.

User Input

echo "Enter your name:"
read name
echo "Hello, $name!"

Reading user input is simple in Bash, making your scripts interactive and user-friendly.

By mastering these basics, you'll be able to create powerful Bash scripts that can automate many tasks, saving you time and effort. Happy scripting!

More from this blog

badhon's brain

18 posts

Another random guy with another random blog