📖 Scenario: You are writing a simple bash script to organize tasks into functions. Functions help you reuse code and keep your script clean.
🎯 Goal: Create a bash script with a function that prints a greeting message. Then call that function to show the message.
📋 What You'll Learn
Create a function named greet that prints the text Hello, welcome to bash scripting!
Call the function greet after its definition
💡 Why This Matters
🌍 Real World
Functions in bash scripts help organize tasks like backups, monitoring, or automation steps. Calling functions makes scripts easier to read and reuse.
💼 Career
Knowing how to write and call functions in bash is essential for system administrators, DevOps engineers, and anyone automating tasks on Linux or Unix systems.
Progress0 / 4 steps
1
Create the greet function
Write a bash function named greet that prints the exact text Hello, welcome to bash scripting! using echo. Use the syntax: greet() { ... }
Bash Scripting
Hint
Use echo inside the function to print the message.
2
Call the greet function
After the greet function definition, write a line to call the function by its name greet.
Bash Scripting
Hint
Just write the function name greet on a new line to call it.
3
Add a comment explaining the function call
Add a comment line before the function call that says # Call the greet function.
Bash Scripting
Hint
Comments start with # in bash scripts.
4
Run the script and show the output
Run the script and print the output. The output should be exactly Hello, welcome to bash scripting!
Bash Scripting
Hint
Run the script in your terminal using bash scriptname.sh or ./scriptname.sh if executable.
Practice
(1/5)
1. In Bash scripting, how do you call a function named greet?
easy
A. Write greet() with parentheses.
B. Write call greet().
C. Just write greet on a line by itself.
D. Write run greet.
Solution
Step 1: Understand Bash function call syntax
In Bash, functions are called by simply writing their name without parentheses or keywords.
Step 2: Compare options with Bash syntax
Only Just write greet on a line by itself. matches the correct way: just the function name alone.
Final Answer:
Just write greet on a line by itself. -> Option C
Quick Check:
Function call = function name alone [OK]
Hint: Call functions by name only, no parentheses needed [OK]
Common Mistakes:
Adding parentheses like in other languages
Using keywords like 'call' or 'run'
Forgetting to write the function name
2. Which of the following is the correct syntax to define a function named hello in Bash?
easy
A. hello { echo "Hi" }
B. hello() { echo "Hi" }
C. def hello() { echo "Hi" }
D. function hello() echo "Hi"
Solution
Step 1: Recall Bash function definition syntax
Bash functions are defined as name() { commands; } or with the keyword function followed by name and braces.
Step 2: Check each option
hello() { echo "Hi" } uses hello() { echo "Hi" }, which is correct. hello { echo "Hi" } misses the () after the name. def hello() { echo "Hi" } uses Python syntax. function hello() echo "Hi" misses braces.
Final Answer:
hello() { echo "Hi" } -> Option B
Quick Check:
Function syntax = name() { commands } [OK]
Hint: Use name() { commands } to define functions in Bash [OK]
Common Mistakes:
Using Python or other language syntax
Omitting parentheses or braces
Misplacing the function keyword
3. What is the output of this script?
say_hello() {
echo "Hello, $1!"
}
say_hello Alice
medium
A. Hello, Alice!
B. Hello, $1!
C. say_hello Alice
D. Error: function not found
Solution
Step 1: Understand function and argument usage
The function say_hello prints "Hello," followed by the first argument $1.
Step 2: Identify the argument passed
The function is called with argument "Alice", so $1 becomes "Alice".
Final Answer:
Hello, Alice! -> Option A
Quick Check:
Function argument $1 = Alice [OK]
Hint: Use $1 to access first argument inside function [OK]
Common Mistakes:
Printing literal $1 instead of its value
Forgetting to pass argument
Misunderstanding function call syntax
4. Identify the error in this script:
greet() {
echo "Hi $name"
}
greet John
medium
A. Function greet is not defined correctly
B. Missing semicolon after echo
C. Function call syntax is wrong
D. Variable $name is not set or passed
Solution
Step 1: Check variable usage inside function
The function uses $name, but no variable named name is set or passed.
Step 2: Check function call and argument passing
The function is called with "John" as argument, but the function does not use $1 to access it.
Final Answer:
Variable $name is not set or passed -> Option D
Quick Check:
Use $1 to access arguments, not undefined variables [OK]
Hint: Use $1 inside function to get passed arguments [OK]
Common Mistakes:
Using undefined variables instead of $1
Assuming arguments auto-assign to variable names
Ignoring function call syntax correctness
5. You want to write a Bash function sum that takes two numbers as arguments and prints their sum. Which script correctly calls the function and prints the result?
hard
A.
sum() {
echo $(($1 + $2))
}
sum 3 5
B.
sum() {
echo $1 + $2
}
sum 3 5
C.
sum() {
echo $((1 + 2))
}
sum 3 5
D.
sum() {
echo $1 $2
}
sum 3 5
Solution
Step 1: Understand arithmetic evaluation in Bash
To add numbers, use $((expression)). Inside, use $1 and $2 for arguments.
Step 2: Check each option's output
sum() {
echo $(($1 + $2))
}
sum 3 5
correctly sums $1 + $2.
sum() {
echo $1 + $2
}
sum 3 5
prints literal string with plus sign.
sum() {
echo $((1 + 2))
}
sum 3 5
adds 1 and 2 literally, ignoring arguments.
sum() {
echo $1 $2
}
sum 3 5
prints arguments separated by space.
Final Answer:
sum() { echo $(($1 + $2)) } sum 3 5 -> Option A
Quick Check:
Use $(( $1 + $2 )) for sum [OK]
Hint: Use $(( $1 + $2 )) to add arguments inside function [OK]
Common Mistakes:
Printing arguments without arithmetic evaluation
Using fixed numbers instead of arguments
Confusing string concatenation with addition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.