Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Function definition in Bash Scripting

Choose your learning style10 modes available
Introduction
Functions let you group commands together to reuse them easily and keep your script organized.
When you want to run the same set of commands multiple times without rewriting them.
When you want to break a big script into smaller, easy-to-understand parts.
When you want to make your script cleaner and easier to maintain.
When you want to pass information to a group of commands and get results back.
Syntax
Bash Scripting
function_name() {
  commands
}

# or

function function_name() {
  commands
}
Function names should be simple and descriptive.
Use parentheses () after the function name, but no parameters go there in bash.
Examples
A simple function named greet that prints a message.
Bash Scripting
greet() {
  echo "Hello, friend!"
}
Another way to define a function with parentheses.
Bash Scripting
function say_goodbye() {
  echo "Goodbye!"
}
Function that runs the date command to show current date and time.
Bash Scripting
print_date() {
  date
}
Sample Program
This script defines a function say_hello that prints a welcome message. Then it calls the function to show the message.
Bash Scripting
#!/bin/bash

say_hello() {
  echo "Hello, welcome to the script!"
}

say_hello
OutputSuccess
Important Notes
Always call the function by its name followed by parentheses or just the name in bash.
Functions help avoid repeating code and make scripts easier to read.
You can pass arguments to functions using $1, $2, etc., inside the function.
Summary
Functions group commands to reuse them easily.
Define functions with function_name() { commands } or function function_name() { commands }.
Call functions by their name to run the grouped commands.

Practice

(1/5)
1. What is the correct way to define a function named greet in bash?
easy
A. greet() { echo "Hello"; }
B. function greet[] { echo "Hello"; }
C. def greet() { echo "Hello"; }
D. function greet() echo "Hello"

Solution

  1. Step 1: Understand bash function syntax

    Bash functions are defined using either name() { commands; } or function name { commands; }.
  2. Step 2: Check each option

    greet() { echo "Hello"; } uses the correct syntax with parentheses and braces. Options B, C, and D have syntax errors or use wrong keywords.
  3. Final Answer:

    greet() { echo "Hello"; } -> Option A
  4. Quick Check:

    Function syntax = greet() { ... } [OK]
Hint: Use parentheses and braces to define bash functions [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Using Python 'def' keyword
  • Omitting braces around commands
2. Which of the following is a valid function definition syntax in bash?
easy
A. function myFunc() { echo "Hi"; }
B. myFunc[] { echo "Hi"; }
C. function myFunc[] echo "Hi"
D. myFunc() echo "Hi"

Solution

  1. Step 1: Recall valid bash function syntax

    Bash allows defining functions as function name() { commands; } or name() { commands; }.
  2. Step 2: Evaluate options

    function myFunc() { echo "Hi"; } matches valid syntax. Options A and C use square brackets incorrectly. myFunc() echo "Hi" misses braces around commands.
  3. Final Answer:

    function myFunc() { echo "Hi"; } -> Option A
  4. Quick Check:

    Valid syntax includes 'function name() { ... }' [OK]
Hint: Remember to use braces {} to group commands in functions [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Omitting braces after function name
  • Missing parentheses after function name
3. What will be the output of this bash script?
say_hello() {
  echo "Hello, $1!"
}
say_hello Alice
medium
A. Error: function not found
B. Hello, Alice!
C. say_hello Alice
D. Hello, $1!

Solution

  1. Step 1: Understand function call with argument

    The function say_hello takes one argument and prints it using $1.
  2. Step 2: Substitute argument and print

    Calling say_hello Alice replaces $1 with "Alice", so output is "Hello, Alice!".
  3. Final Answer:

    Hello, Alice! -> Option B
  4. Quick Check:

    Function argument $1 = Alice [OK]
Hint: Use $1 to access first argument inside bash functions [OK]
Common Mistakes:
  • Printing literal $1 instead of its value
  • Forgetting to call the function
  • Syntax errors in function definition
4. Identify the error in this bash function definition:
function greet {
  echo "Hi"
}
medium
A. Missing parentheses after function name
B. Missing braces around commands
C. Missing semicolon after echo
D. No error; parentheses are optional with 'function' keyword

Solution

  1. Step 1: Check function syntax with 'function' keyword

    Bash allows function name() { commands; } or function name { commands; }. Parentheses after the name are optional.
  2. Step 2: Identify if there's an error

    The code function greet { echo "Hi"; } is valid syntax.
  3. Final Answer:

    No error; parentheses are optional with 'function' keyword -> Option D
  4. Quick Check:

    function name { ... } [OK]
Hint: Parentheses () are optional with 'function name' [OK]
Common Mistakes:
  • Omitting parentheses after function name
  • Confusing braces and parentheses
  • Assuming semicolon needed after echo
5. You want to create a bash function sum that takes two numbers and prints their sum. Which function definition correctly does this?
hard
A. function sum { echo $1 + $2; }
B. sum() { echo $1 + $2; }
C. sum() { echo $(($1 + $2)); }
D. sum() { echo $1 $2; }

Solution

  1. Step 1: Understand arithmetic in bash functions

    To add numbers, use arithmetic expansion $(()) inside echo.
  2. Step 2: Evaluate each option

    sum() { echo $(($1 + $2)); } correctly sums $1 and $2 using $(($1 + $2)). Options A and B print strings with plus sign, not sum. sum() { echo $1 $2; } prints numbers without adding.
  3. Final Answer:

    sum() { echo $(($1 + $2)); } -> Option C
  4. Quick Check:

    Use $(()) for arithmetic in bash functions [OK]
Hint: Use $(()) to perform math inside bash functions [OK]
Common Mistakes:
  • Printing variables without arithmetic expansion
  • Omitting parentheses for function definition
  • Using 'function' without parentheses
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard