#90DaysOfDevops | Day 8

Day 8 -> Shell Scripting Challenge

Welcome to Day 8 of our 90-day DevOps journey! Today, we're diving into shell scripting—an absolutely essential skill for any DevOps engineer! Shell scripting lets us automate tasks, making our workflows super efficient and reliable. Let's get excited and break down the tasks for today:

Task 1: Comments

In bash scripts, comments are used to add explanatory notes or disable certain lines of code. Comments start with the # symbol. They are ignored by the shell and are only meant for humans reading the script.

Example:

#!/bin/bash
# This is a comment
echo "Hello, World!" # This prints a message to the terminal

Task 2: Echo

The echo command is used to display messages on the terminal. It's a simple yet powerful tool for outputting text and variables.

Example:

#!/bin/bash
# This script prints a welcome message
echo "Welcome to Day 8 of the DevOps Challenge!"

Task 3: Variables

Variables in bash are used to store data and can be referenced by their name. They help in making scripts dynamic and reusable.

Example:

#!/bin/bash
# Declaring variables
greeting="Hello"
name="Siddhi"
# Using the variables
echo "$greeting, $name!"

Task 4: Using Variables

Now that you have declared variables, let's use them to perform a simple task. This script takes two variables (numbers) as input and prints their sum using those variables.

Example:

#!/bin/bash
# Declaring variables
num1=5
num2=10
# Calculating the sum
sum=$((num1 + num2))
# Displaying the result
echo "The sum of $num1 and $num2 is $sum"

Task 5: Using Built-in Variables

Bash provides several built-in variables that hold useful information. Let's utilize at least three different built-in variables to display relevant information.

Example:

#!/bin/bash
# Displaying built-in variables
echo "Script name: $0"
echo "First argument: $1"
echo "Number of arguments: $#"

Task 6: Wildcards

Wildcards are special characters used to perform pattern matching when working with files. They help in listing or processing multiple files at once.

Example:

#!/bin/bash
# Listing all .txt files in the current directory
echo "Text files in the current directory:"
ls *.txt

Real-life Application

Let's create a practical script that utilizes all these concepts. Imagine you are automating a task where you need to process text files in a directory, add a header to each file, and then list the processed files.

Example:

#!/bin/bash
# Adding comments to explain the script
# This script processes text files by adding a header and lists the processed files

# Define the header
header="Processed by siddhi's script"

# Loop through all .txt files in the current directory
for file in *.txt
do
  # Add the header to each file
  echo "$header" | cat - "$file" > temp && mv temp "$file"
  echo "Processed: $file"
done

# List all processed files
echo "All processed text files:"
ls *.txt

Today, we've learned the basics of shell scripting, including comments, echo commands, variables, built-in variables, and wildcards.As you continue your DevOps journey, remember that practice is crucial. Keep experimenting with scripts, and soon you'll be creating complex automation solutions effortlessly.

Happy scripting!🚀