Advanced Bash Scripting

Conventions

Functions

Overview

Functions are essential for writing clean, modular shell scripts. They help you:

  • Reuse code and avoid duplication
  • Improve readability and maintainability
  • Handle complex tasks in a structured way

This guide covers best practices for naming, defining, and styling functions in Bash.

Naming Conventions

Adopt consistent naming to make your functions self-documenting. Follow these rules:

GuidelineRecommendationExample
Lowercase namesEnhances uniformitycalculate_area
Descriptive identifiersConveys purpose instantlybackup_database
Underscores between wordsImproves readabilityget_user_info
No single-letter or CamelCasePrevents ambiguityprocess_files

Note

Descriptive, lowercase names with underscores help developers and automation tools understand your code at a glance.

Defining Functions

Use this standard syntax for declaring functions:

function_name() {
    # function body
}

Key style guidelines:

  1. Include parentheses () after the name.
  2. Place the opening brace { on the same line, preceded by one space.
  3. Align the closing brace } with the function declaration (no extra indentation).

Example Definitions

calculate_area() {
    local radius=$1
    echo "Area: $(( 3 * radius * radius ))"
}

get_name() {
    local user_id=$1
    # Retrieve the user’s name from a data source
    echo "User Name for ID $user_id"
}

clone_repo() {
    local repo_url=$1
    git clone "$repo_url"
}

Warning

Misplacing braces or omitting parentheses leads to syntax errors and unexpected behavior.

Advanced Function Patterns

In upcoming sections, you’ll learn how to:

  • Define functions without the function keyword
  • Use local variables to prevent global namespace pollution
  • Return status codes and handle errors gracefully
  • Parse command-line options using getopts

Further Reading

Watch Video

Watch video content

Previous
Variables