Learn Bash Scripting in 10 Minutes

By Raman Kumar

Updated on Nov 26, 2024

In this tutorial, we'll learn Bash Scripting in 10 minutes.

Learn the essentials of Bash scripting in just 10 minutes! This beginner-friendly guide covers everything you need to get started with Bash, including creating scripts, using variables, loops, conditionals, handling user input, and best practices. Perfect for those looking to automate tasks, streamline workflows, and gain a solid foundation in Linux scripting. Start automating today!

Bash, short for "Bourne Again Shell," is a command-line shell and scripting language commonly used in Linux systems. Learning Bash scripting is a valuable skill for automating tasks, managing servers, and making your work more efficient.

Learn Bash Scripting in 10 Minutes

1. What is a Bash Script?

A Bash script is simply a file containing a series of commands that the system's Bash shell can execute. Scripts allow you to automate repetitive tasks, execute multiple commands in sequence, and create more complex operations using logic and loops.

A basic Bash script looks like this:

#!/bin/bash
# This is a simple Bash script
echo "Hello, World!"
  • #!/bin/bash is called a "shebang." It tells the system to use the Bash interpreter to run the script.
  • echo is a command that prints text to the terminal.

2. Creating and Running Your First Script

To create and run a Bash script:

Open a terminal.

Create a new file with a .sh extension:

nano myscript.sh

Add the following content to the file:

#!/bin/bash
echo "Learning Bash scripting is fun!"

Save the file and exit the editor (if using nano, press CTRL + X, then Y, and Enter).

Make the script executable:

chmod +x myscript.sh

Run the script:

./myscript.sh

3. Variables in Bash

Variables allow you to store data that can be reused later in the script. In Bash, variables are defined without spaces around the = sign:

#!/bin/bash
# Define a variable
name="Alice"
echo "Hello, $name!"
  • $name accesses the value of the name variable.
  • Double quotes allow variable expansion, whereas single quotes do not.

Note: Variable names should start with a letter and contain only letters, numbers, or underscores.

4. User Input

You can prompt users for input using the read command:

#!/bin/bash
echo "What's your name?"
read user_name
echo "Nice to meet you, $user_name!"

5. Conditional Statements (if-else)

Conditional statements allow your script to make decisions. Here's a basic example:

#!/bin/bash
echo "Enter a number:"
read number

if [ "$number" -gt 10 ]; then
  echo "The number is greater than 10."
else
  echo "The number is 10 or less."
fi

Explanation:

  • [ "$number" -gt 10 ] checks if the number is greater than 10.
  • -eq, -ne, -lt, -le, -gt, and -ge are operators for comparing numbers.

6. Loops in Bash

Loops are useful for repeating a set of commands. Here's an example using a for loop:

#!/bin/bash
# Loop through numbers 1 to 5
for i in {1..5}
do
  echo "Number: $i"
done

You can also use a while loop:

#!/bin/bash
counter=1
while [ $counter -le 5 ]
do
  echo "Counter is at $counter"
  ((counter++))
done

7. Functions in Bash

Functions are blocks of reusable code that you can call anywhere in your script:

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

# Call the function
greet "Alice"
greet "Bob"

Explanation:

  • $1 represents the first argument passed to the function.
  • Functions should be defined before they are called.

8. Working with Files and Directories

Bash scripts can manipulate files and directories. Here are some examples:

Create a directory and a file:

#!/bin/bash
mkdir my_directory
touch my_directory/my_file.txt
echo "This is a sample text." > my_directory/my_file.txt

Check if a file exists:

#!/bin/bash
if [ -f "my_file.txt" ]; then
  echo "File exists."
else
  echo "File does not exist."
fi

Explanation:

  • mkdir creates a directory.
  • touch creates a new file.
  • > redirects output to a file (creating or overwriting it).
  • -f checks if a file exists.

9. Basic Arithmetic in Bash

Bash supports basic arithmetic operations using the $(( )) syntax:

#!/bin/bash
num1=10
num2=5
sum=$((num1 + num2))
echo "Sum: $sum"

Common operators include:

  • + (addition)
  • - (subtraction)
  • * (multiplication)
  • / (division)
  • % (modulus)

10. Error Handling

To catch errors, use the || operator or set command. This example stops the script if a command fails:

#!/bin/bash
set -e  # Exit script if any command fails

mkdir my_folder || { echo "Failed to create directory!"; exit 1; }
echo "Directory created successfully."

11. Comments in Bash Scripts

Comments are crucial for making your scripts readable. Use the # symbol to add comments:

#!/bin/bash
# This is a single-line comment

: '
This is a
multi-line comment.
'
echo "Comments are ignored by the Bash interpreter."

12. Debugging Bash Scripts

Debugging scripts can be done using the -x flag:

bash -x myscript.sh

This will display each command and its arguments as they are executed, making it easier to identify errors.

13. Best Practices for Bash Scripting

  • Always use #!/bin/bash at the start of your scripts.
  • Use meaningful variable names.
  • Quote variables ("$var") to avoid word splitting and unexpected behavior.
  • Indent your code for better readability.
  • Use functions to modularize and reuse code.

Conclusion

In this tutorial, we've seen how we can learn Bash Scripting in 10 minutes. Bash scripting is a powerful tool that can automate tasks, manage system operations, and streamline workflows. With this foundational knowledge, you can create scripts that handle everything from simple file operations to complex system automation. Keep practicing, explore more advanced topics, and soon you'll be a proficient Bash scripter!

Checkout our instant dedicated servers and Instant KVM VPS plans.