Linux
BASH
Basic Bash Script Learn

🖥️ Bash Scripting Basics 🖥️

🎯 Script Debugging Mode

#!/bin/bash
# Enable debugging
set -x
 
echo "Start of the script"
var="Bash scripting"
echo "Learning $var"

Explanation:

  • set -x enables debugging mode, showing each command and its arguments as they are executed.

🚨 Error Handling

#!/bin/bash
# Exit on error
set -e
 
echo "This will run"
non_existing_command
echo "This will not run"

Explanation:

  • set -e causes the script to exit immediately if any command returns a non-zero exit status.

🔄 Using if Statements

if [ $? -ne 0 ]; then
    echo "Last command failed!"
fi

Explanation:

  • $? holds the exit status of the last command.
  • -ne 0 checks if the status is not equal to 0, indicating an error.

🔧 Logging and Output

#!/bin/bash
set -x
logfile="script.log"
 
log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> $logfile
}
 
log "Script started"
log "Processing data"
echo " Echo is different from log " 
log "Script ended"

Explanation:

  • Logs are written to script.log with timestamps.

🔄 Control Structures

If Statements

if [ condition ]; then
    # code
elif [ another_condition ]; then
    # code
else
    # code
fi

For Loops

# Basic For Loop
for i in {1..5}; do
    echo "Iteration $i"
done
 
# Advanced For Loop
for (( i = 0 ; i <= 5; i++ ))
do
    echo "Welcome $i times"
done

While Loop

while [ condition ]; do
    # code
done

Functions

function greet() {
    echo "Hello, $1"
}
greet "World"

📁 File Operations

if [ -f "file.txt" ]; then
    echo "File exists."
else
    echo "File does not exist."
fi

Explanation:

  • Checks if a file exists before performing operations.

🧩 Case Statements

#!/bin/bash
read -p "Enter a letter: " letter
 
case $letter in
    [a-z])
        echo "You entered a lowercase letter"
        ;;
    [A-Z])
        echo "You entered an uppercase letter"
        ;;
    [0-9])
        echo "You entered a number"
        ;;
    *)
        echo "You entered a special character"
        ;;
esac

🍎 Arrays

#!/bin/bash
fruits=("apple" "banana" "cherry")
 
for fruit in "${fruits[@]}"; do
    echo "I like $fruit"
done

🌐 HTTP Requests

#!/bin/bash
response=$(curl -s -w "%{http_code}" -o response.txt http://example.com)
echo "HTTP Status Code: $response"

🗓️ Date and Time

echo "Today is date"
echo "Today is `date`"

Explanation:

  • Uses the date command to print the current date.

📝 Reading User Input

#!/bin/bash
read -p "Enter your name: " name
echo "Hello, $name!"

📜 Comments and Formatting

#!/bin/bash
echo "Hello, World!" # This is a comment
MANGO=4
APPLE="3"
BUCKET="Total of 5 Bucket"
 
echo "Today I have sold $MANGO & $APPLE" \a "$BUCKET"

Explanation:

  • \a produces an alert sound.
  • Comments are preceded by #.

Running Commands with sleep

#!/bin/bash
 
echo "Running command 1..."
sleep 1
 
echo "Running command 2..."
sleep 1
 
# Prompt the user for input
read -p "Do you want to execute command 6? (yes/no): " user_input
 
# Convert user input to lowercase
user_input=$(echo "$user_input" | tr '[:upper:]' '[:lower:]')
 
if [[ $user_input == "yes" || $user_input == "y" ]]; then
    echo "Running command 6..."
    sleep 1
else
    echo "Skipping command 6..."
fi
 
echo "All commands executed."


🧙 AI Wizard - Instant Page Insights

Click the button below to analyze this page.
Get an AI-generated summary and key insights in seconds.
Powered by Perplexity AI!