TechBeamersTechBeamers
  • Learn ProgrammingLearn Programming
    • Python Programming
      • Python Basic
      • Python OOP
      • Python Pandas
      • Python PIP
      • Python Advanced
      • Python Selenium
    • Python Examples
    • Selenium Tutorials
      • Selenium with Java
      • Selenium with Python
    • Software Testing Tutorials
    • Java Programming
      • Java Basic
      • Java Flow Control
      • Java OOP
    • C Programming
    • Linux Commands
    • MySQL Commands
    • Agile in Software
    • AngularJS Guides
    • Android Tutorials
  • Interview PrepInterview Prep
    • SQL Interview Questions
    • Testing Interview Q&A
    • Python Interview Q&A
    • Selenium Interview Q&A
    • C Sharp Interview Q&A
    • PHP Interview Questions
    • Java Interview Questions
    • Web Development Q&A
  • Self AssessmentSelf Assessment
    • Python Test
    • Java Online Test
    • Selenium Quiz
    • Testing Quiz
    • HTML CSS Quiz
    • Shell Script Test
    • C/C++ Coding Test
Search
  • Python Multiline String
  • Python Multiline Comment
  • Python Iterate String
  • Python Dictionary
  • Python Lists
  • Python List Contains
  • Page Object Model
  • TestNG Annotations
  • Python Function Quiz
  • Python String Quiz
  • Python OOP Test
  • Java Spring Test
  • Java Collection Quiz
  • JavaScript Skill Test
  • Selenium Skill Test
  • Selenium Python Quiz
  • Shell Scripting Test
  • Latest Python Q&A
  • CSharp Coding Q&A
  • SQL Query Question
  • Top Selenium Q&A
  • Top QA Questions
  • Latest Testing Q&A
  • REST API Questions
  • Linux Interview Q&A
  • Shell Script Questions
© 2024 TechBeamers. All Rights Reserved.
Reading: Simple Bash Scripting Tutorial for Beginners
Font ResizerAa
TechBeamersTechBeamers
Font ResizerAa
  • Python
  • SQL
  • C
  • Java
  • Testing
  • Selenium
  • Agile Concepts Simplified
  • Linux
  • MySQL
  • Python Quizzes
  • Java Quiz
  • Testing Quiz
  • Shell Script Quiz
  • WebDev Interview
  • Python Basic
  • Python Examples
  • Python Advanced
  • Python OOP
  • Python Selenium
  • General Tech
Search
  • Programming Tutorials
    • Python Tutorial
    • Python Examples
    • Java Tutorial
    • C Tutorial
    • MySQL Tutorial
    • Selenium Tutorial
    • Testing Tutorial
  • Top Interview Q&A
    • SQL Interview
    • Web Dev Interview
  • Best Coding Quiz
    • Python Quizzes
    • Java Quiz
    • Testing Quiz
    • ShellScript Quiz
Follow US
© 2024 TechBeamers. All Rights Reserved.
Linux Tutorials

Simple Bash Scripting Tutorial for Beginners

Last updated: Jun 01, 2024 9:00 pm
By Meenakshi Agarwal
Share
19 Min Read
Bash Scripting for Beginners
SHARE

Bash scripting is a niche skill for Linux users and is even useful for DevOps engineers. It provides simple tools like variables, loops, if conditions, and more. You can then group Linux commands to automate your tasks. Let’s start to explore their syntax and usage.

Contents
A Bit of HistoryBash Scripting Code StructureSyntax for Bash Script Instructions1. Bash Scripting Variables2. How to Ask for User Input3. How to Print a Message Using Echo4. Bash Script Syntax: Arithmetic5. Conditionals (if, else, fi)6. Bash For Loop7. Bash While LoopAdvanced Scripting Techniques1. Define Arrays2. String Manipulation3. File Handling4. Switching with Case5. Handling MistakesBash Scripting Examples1. Hello World2. User Input3. Variables and Arithmetic4. Conditional Statements5. Looping with For6. While Loop7. Reading from a File8. Command Line Arguments9. Case Statement10. Basic FunctionMore Fun Examples11. Word Detective12. Internet ExplorerWhat’s AheadDevOps IntegrationMicroservices DeploymentBefore We Wrap

Must Read: 20 Shell Scripting Questions and Answers

In this guide, you’ll explore the essential tools for learning bash scripting.

What is Bash?

Bash, which stands for “Bourne Again SHell,” is a command-line interpreter that acts as a tool for users to interact with the operating system. It parses the commands and executes them in the given sequence.

Bash is known for its flexibility, incorporating features from various shells, and it serves as the default shell for most Linux distributions and macOS.

A Bit of History

Bash was created by Brian Fox in 1989 as a free replacement for the Bourne Shell. Over the years, it has evolved, incorporating features from different shells and becoming a standard tool for scripting and command-line interactions. The Free Software Foundation is now responsible for maintaining it.

Check This: Linux Command Cheat Sheet for Beginners

Bash Scripting Code Structure

A bash script follows a straightforward structure, comprising the following components:

1. Shebang:

  • The shebang is the initial line of your script, specifying the interpreter (Bash, in this case).
   #!/bin/bash

2. Comments:

  • Comments provide human-readable notes in the script, beginning with the # symbol.
   # This is a comment explaining something

3. Variables:

  • Variables store information and are created by assigning values.
   greeting="Hello, World!"

4. User Input:

  • read is used to receive input from the user, making the script interactive.
   echo "What's your name?"
   read username

5. Echo:

  • echo outputs messages to the screen, allowing the script to communicate.
   echo "Hi, $username!"

Syntax for Bash Script Instructions

Bash script instructions are written in a straightforward syntax, employing the following conventions:

1. Bash Scripting Variables

Variables in Bash are used to store and manipulate data. Here’s the syntax for creating and using variables:

variable_name="some_value"

Explanation:

  • Assign a value to a variable using the format variable_name="some_value".
  • The variable name should adhere to Bash variable naming conventions.

Example:

greeting="Hello, World!"

This example initializes a variable named greeting with the value “Hello, World!”.

2. How to Ask for User Input

Receiving input from users makes scripts interactive. Here’s the syntax for capturing user input:

echo "Prompt message"
read variable_name

Explanation:

  • Use echo to display a prompt message.
  • Utilize read to capture input from the user into the specified variable.

Example:

echo "What's your name?"
read username

This example prompts the user for their name and stores the input in the variable username.

3. How to Print a Message Using Echo

Conveying information in the terminal is crucial. Here’s how you use the echo command:

echo "Message to display"

Explanation:

  • Use echo followed by the message enclosed in double quotes to display text.
  • Variables can be included in the message using the format echo "Text $variable_name more text".

Example:

echo "Hi, $username!"

This example echoes a greeting message using the value stored in the username variable.

After understanding these syntaxes, you can use variables, capture user input, and display messages in your Bash scripts.

4. Bash Script Syntax: Arithmetic

Performing arithmetic operations in Bash is essential for numerical computations. Here’s the syntax for arithmetic operations:

result=$((expression))

Explanation:

  • Use $((...)) to enclose the arithmetic expression.
  • Place the arithmetic expression within the double parentheses.

Example:

#!/bin/bash

# Add two numbers and store the result
value1=5
value2=3
sum=$((value1 + value2))

This example computes the sum of value1 and value2, storing the result in the variable sum.

Use the syntax to perform various arithmetic operations in Bash scripts. Adjust the arithmetic expressions based on your specific numerical requirements.

5. Conditionals (if, else, fi)

The if, else, and fi constructs are fundamental for making decisions in Bash scripts. Here’s the syntax breakdown:

if [ condition ]; then
  # Code to execute if the condition is (0) true
else
  # Code to execute if the condition is (1) false
fi

Note: In Bash, the numeric value for true is 0, and for false, it is 1. This convention is commonly used in Unix-like systems, where a command or operation returning 0 indicates success or true, and any other numeric value indicates an error or false.

Explanation:

  • The if statement is initiated with the keyword if, followed by the condition enclosed in square brackets [ ].
  • The then keyword starts the block of code that executes if the condition is (0) true.
  • Place your desired commands or code within the block following then.
  • The else keyword introduces the block of code that executes if the initial condition is false.
  • Insert the desired commands or code within the block following else.
  • The fi keyword signifies the end of the entire conditional block.

Example:

#!/bin/bash

# Check if the length of two strings is equal
string1="Bash"
string2="Scripting"

if [ ${#string1} -eq ${#string2} ]; then
  echo "The length of '$string1' is equal to the length of '$string2'"
else
  echo "The length of '$string1' is not equal to the length of '$string2'"
fi

Explanation:

  • This example compares the lengths of two strings, $string1 and $string2.
  • ${#string} is used to get the length of a string.
  • The -eq operator checks if the lengths are equal.
  • If true, it echoes a message about equal lengths; otherwise, it echoes an alternative message.
  • This demonstrates the versatility of conditional statements beyond numerical comparisons.

You can use strings and numeric values in if conditions.

Let’s now check out the loops in Bash. They allow you to repeat a set of instructions.

6. Bash For Loop

Here’s the syntax breakdown for the for loop:

for variable in list; do
  # Code to execute for each iteration
done

Explanation:

  • The for loop initializes a variable that takes values from a specified list.
  • The do keyword marks the beginning of the code block to be executed for each iteration.
  • Place your desired commands or code within the block following do.
  • The done keyword signifies the end of the for loop.

Example:

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

In the above example, the loop prints a message in each round, ranging from 1 to 5.

7. Bash While Loop

The following is the syntax breakdown for the while loop:

while [ condition ]; do
  # Code to execute as long as the condition is (0) true
done

Explanation:

  • The while loop continuously executes the code block until the specified condition is (0) true.
  • The do keyword marks the beginning of the code block to be executed for each iteration.
  • Place your desired commands or code within the block following do.
  • The done keyword signifies the end of the while loop.

Example:

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

This example demonstrates a while loop that iterates as long as the variable $count is less than or equal to 3. It prints a message for each iteration.

Understanding these loop structures is essential if you have repetition in your tasks. Adjust the loop parameters and code accordingly as per the use case.

Also Read: 20 Bash Script Code Challenges for Beginners with Their Solutions

Advanced Scripting Techniques

Now, it’s time to go through a few advanced techniques. They can give more power to your bash scripting.

1. Define Arrays

Arrays in bash provide a way to store multiple values in a single variable. They are useful when dealing with lists or sets of data. The script example creates an array of fruits. It loops through each element and prints a message in each iteration.

#!/bin/bash
fruits=("Apple" "Orange" "Banana")

for fruit in "${fruits[@]}"; do
  echo "Processing $fruit"
done

In this script, the for loop efficiently processes each fruit in the array, demonstrating the elegance of bash scripting when dealing with structured data.

2. String Manipulation

String manipulation is a key skill for any bash scripter. It is needed to parse substrings and modify them as per the use case.

For example – the following script extracts a substring from a larger string. Check the the commands used for string manipulation.

#!/bin/bash
string="Hello, World!"
substring="${string:0:5}"
echo "Substring: $substring"

Understanding string manipulation allows scriptwriters to parse and manipulate textual information effectively, facilitating various text-processing tasks.

3. File Handling

Effective file handling is fundamental in bash scripting, enabling tasks such as file analysis, processing, and organization. The script below counts the lines in all text files within a specified directory, offering a practical example of file-related operations.

#!/bin/bash
files=$(find . -type f -name "*.txt")

for file in $files; do
  lines=$(wc -l < "$file")
  echo "File: $file, Lines: $lines"
done

This script combines the power of the find command to locate relevant files and the wc command to count lines, providing insight into file-handling techniques.

4. Switching with Case

The case statement in bash is a versatile tool for handling multiple conditions in a more readable manner than nested if-else statements. The following script uses case to determine the file type based on its extension.

#!/bin/bash
file_type=""
read -p "Tell me a filename: " filename

case "$filename" in
  *.txt) file_type="Text File";;
  *.jpg|*.png) file_type="Image File";;
  *) file_type="Some Mystery File";;
esac

echo "$filename is probably a $file_type."

By incorporating case, this script enhances readability and maintainability, especially when dealing with numerous conditions.

5. Handling Mistakes

Robust error handling is crucial in bash scripting to ensure scripts gracefully manage unexpected situations. The provided script sets up a trap to catch errors, calling a custom error-handling function and displaying relevant information.

#!/bin/bash
handle_error() {
  echo "Uh-oh, something went wrong on line $1: $2"
  exit 1
}

trap 'handle_error $LINENO "$BASH_COMMAND"' ERR

# Your superhero script goes here

By utilizing the trap command and a custom error-handling function, this script provides a mechanism to handle errors effectively, aiding in debugging and script reliability.

Bash Scripting Examples

Certainly! Here are 10 beginner-friendly bash scripting examples along with explanations:

1. Hello World

#!/bin/bash
echo "Hello, World!"

This classic example simply prints “Hello, World!” to the terminal. It’s the starting point for many programming languages and serves as a quick way to ensure your bash environment is set up.

2. User Input

#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name! Welcome to bash scripting."

This script prompts the user for their name, reads the input, and then greets them using the entered name.

3. Variables and Arithmetic

#!/bin/bash
num1=5
num2=3

sum=$((num1 + num2))
echo "Sum: $sum"

This example introduces variables and performs basic arithmetic to calculate the sum of two numbers.

4. Conditional Statements

Let’s use the condition to check if the student has scored above the passing marks or not.

#!/bin/bash

# Check if a student passed
score=80
passing=60

if [ $score -ge $passing ]; then
  echo "Congratulations! Student scored $score, passing is $passing."
else
  echo "Unfortunately, student scored $score, below passing ($passing). More effort is needed."
fi

Explanation:

  • This example checks if a student’s score, stored in $score, is equal to or greater than the passing score, stored in $passing.
  • The -ge operator is used for the comparison (greater than or equal to).
  • It echoes a congratulatory message if the score is above the passing score; otherwise, it advises more effort is needed.

So, the above was, a simple bash if-else example comparing the two numeric values.

5. Looping with For

#!/bin/bash
for i in {1..5}; do
  echo "Iteration $i"
done

This loop iterates from 1 to 5, printing a message for each iteration. It’s a basic introduction to for loops in bash.

6. While Loop

#!/bin/bash
count=1

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

This script demonstrates a while loop that iterates as long as the count is less than or equal to 3.

7. Reading from a File

#!/bin/bash
filename="sample.txt"

while read line; do
  echo "Line: $line"
done < "$filename"

Here, the script reads each line from a file (“sample.txt”) and echoes it to the terminal.

8. Command Line Arguments

#!/bin/bash
echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"

This script prints the script name and the first two command-line arguments passed when executing the script.

9. Case Statement

#!/bin/bash
read -p "Choose a fruit: " fruit

case $fruit in
  "Apple") echo "You picked an Apple.";;
  "Orange") echo "You picked an Orange.";;
  *) echo "Not sure what you picked.";;
esac

This example demonstrates the use of a case statement to handle different cases based on user input.

10. Basic Function

#!/bin/bash
greet() {
  echo "Hello, $1!"
}

greet "John"

This script defines a simple function (greet) that takes a name as an argument and echoes a greeting. It then calls the function with the name “John.”

These examples cover essential concepts in bash scripting, providing a foundation for beginners to build upon. Experiment with them, modify them as needed, and gradually explore more advanced topics.

More Fun Examples

11. Word Detective

Text processing in bash involves powerful tools like grep for pattern matching. The script below plays the role of a detective, extracting email addresses from a text file using regular expressions.

#!/bin/bash
emails=$(grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b" input.txt)
echo "Found some email addresses: $emails"

This script demonstrates how bash can be used for more advanced text processing tasks, providing a glimpse into the world of pattern matching and regular expressions.

12. Internet Explorer

This script ventures into the realm of network automation by pinging a list of servers and reporting their status. It’s like having a friendly chat with each server to check if they’re awake.

#!/bin/bash
servers=("server1" "server2" "server3")

for server in "${servers[@]}"; do
  if ping -c 1 "$server" &> /dev/null; then
    echo "$server is saying 'Hello!'"
  else
    echo "$server is taking a nap."
  fi
done

By integrating the ping command, this script automates the process of checking server availability, demonstrating the practical application of bash in network-related tasks.

What’s Ahead

So far, you have learned the most essential things about bash scripting. However, it’s an open world and you can always expand your bash skills. Apply them in the following two areas and learn as you go.

DevOps Integration

As you advance in bash scripting, explore DevOps practices by integrating your scripts with Continuous Integration/Continuous Deployment (CI/CD) pipelines. This involves automating the testing and deployment of software, enhancing collaboration and efficiency in development workflows.

Microservices Deployment

Dive into the world of microservices orchestration using tools like Kubernetes. Bash scripts can play a crucial role in automating the deployment and scaling of microservices, contributing to the management of complex distributed systems.

Before We Wrap

This simple guide has given you a deeper understanding of basic and advanced bash scripting concepts. From arrays and string manipulation to file handling, control structures, and practical examples, you now have a toolkit to tackle diverse scripting challenges. As you continue your scripting journey, experiment with customization, and stay curious about emerging technologies. Bash scripting is your magic wand – keep casting those spells.

Before you leave, render your support for us to continue. If you like our tutorials, share this post on social media like Facebook/Twitter.

Happy scripting,
TechBeamers.

You Might Also Like

Basic Linux Commands for Beginners With Examples

How to Use Bash to Replace Character in String

20 Bash Script Code Challenges for Beginners with Their Solutions

Difference Between Git Repository and Directory

Directory in Computer Aside from Git Bash GitHub

TAGGED:Unix Commands and Concepts
Meenakshi Agarwal Avatar
By Meenakshi Agarwal
Follow:
Hi, I'm Meenakshi Agarwal. I have a Bachelor's degree in Computer Science and a Master's degree in Computer Applications. After spending over a decade in large MNCs, I gained extensive experience in programming, coding, software development, testing, and automation. Now, I share my knowledge through tutorials, quizzes, and interview questions on Python, Java, Selenium, SQL, and C# on my blog, TechBeamers.com.
Previous Article How to Import Another Python File How to Import Another Python File
Next Article 45 Python Exercises on Loops, Conditions, and Range() Function Top 45 Python Exercises on Loops, Conditions, and Range() Function

Popular Tutorials

SQL Interview Questions List
50 SQL Practice Questions for Good Results in Interview
SQL Interview Nov 01, 2016
Demo Websites You Need to Practice Selenium
7 Sites to Practice Selenium for Free in 2024
Selenium Tutorial Feb 08, 2016
SQL Exercises with Sample Table and Demo Data
SQL Exercises – Complex Queries
SQL Interview May 10, 2020
Java Coding Questions for Software Testers
15 Java Coding Questions for Testers
Selenium Tutorial Jun 17, 2016
30 Quick Python Programming Questions On List, Tuple & Dictionary
30 Python Programming Questions On List, Tuple, and Dictionary
Python Basic Python Tutorials Oct 07, 2016
//
Our tutorials are written by real people who’ve put in the time to research and test thoroughly. Whether you’re a beginner or a pro, our tutorials will guide you through everything you need to learn a programming language.

Top Coding Tips

  • PYTHON TIPS
  • PANDAS TIPSNew
  • DATA ANALYSIS TIPS
  • SELENIUM TIPS
  • C CODING TIPS
  • GDB DEBUG TIPS
  • SQL TIPS & TRICKS

Top Tutorials

  • PYTHON TUTORIAL FOR BEGINNERS
  • SELENIUM WEBDRIVER TUTORIAL
  • SELENIUM PYTHON TUTORIAL
  • SELENIUM DEMO WEBSITESHot
  • TESTNG TUTORIALS FOR BEGINNERS
  • PYTHON MULTITHREADING TUTORIAL
  • JAVA MULTITHREADING TUTORIAL

Sign Up for Our Newsletter

Subscribe to our newsletter to get our newest articles instantly!

Loading
TechBeamersTechBeamers
Follow US
© 2024 TechBeamers. All Rights Reserved.
  • About
  • Contact
  • Disclaimer
  • Privacy Policy
  • Terms of Use
TechBeamers Newsletter - Subscribe for Latest Updates
Join Us!

Subscribe to our newsletter and never miss the latest tech tutorials, quizzes, and tips.

Loading
Zero spam, Unsubscribe at any time.
x