Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Calling functions in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to call the function named greet.

Bash Scripting
greet() {
  echo "Hello!"
}

[1]
Drag options to blanks, or click blank then click option'
Agreet()
Bcall greet
Crun greet
Dgreet
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses when calling the function causes errors.
Trying to use 'call' or 'run' commands which don't exist in bash.
2fill in blank
medium

Complete the code to call the function say_hello with an argument.

Bash Scripting
say_hello() {
  echo "Hello, $1!"
}

[1]
Drag options to blanks, or click blank then click option'
Asay_hello(John)
Bsay_hello John
Csay_hello
Dcall say_hello John
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses around arguments like in other languages.
Trying to use 'call' keyword which is not valid in bash.
3fill in blank
hard

Fix the error in calling the function print_date correctly.

Bash Scripting
print_date() {
  date
}

[1]
Drag options to blanks, or click blank then click option'
Aprint_date {}
Bprint_date()
Cprint_date
Dcall print_date
Attempts:
3 left
💡 Hint
Common Mistakes
Adding parentheses when calling the function.
Using 'call' keyword which is invalid in bash.
4fill in blank
hard

Fill both blanks to call the function greet_user with the argument 'Alice'.

Bash Scripting
greet_user() {
  echo "Welcome, $1!"
}

[1] [2]
Drag options to blanks, or click blank then click option'
Agreet_user
BAlice
C'Alice'
Dgreet_user()
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses when calling the function.
Adding quotes around the argument which are not needed.
5fill in blank
hard

Fill all three blanks to call the function calculate_sum with two numbers and store the result.

Bash Scripting
calculate_sum() {
  echo $(($1 + $2))
}

result=$([1] [2] [3])
Drag options to blanks, or click blank then click option'
Acalculate_sum
B5
C7
Dcalculate_sum()
Attempts:
3 left
💡 Hint
Common Mistakes
Using parentheses in the function call.
Not separating the arguments with spaces.
Trying to call the function without command substitution.

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

  1. Step 1: Understand Bash function call syntax

    In Bash, functions are called by simply writing their name without parentheses or keywords.
  2. 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.
  3. Final Answer:

    Just write greet on a line by itself. -> Option C
  4. 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

  1. Step 1: Recall Bash function definition syntax

    Bash functions are defined as name() { commands; } or with the keyword function followed by name and braces.
  2. 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.
  3. Final Answer:

    hello() { echo "Hi" } -> Option B
  4. 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

  1. Step 1: Understand function and argument usage

    The function say_hello prints "Hello," followed by the first argument $1.
  2. Step 2: Identify the argument passed

    The function is called with argument "Alice", so $1 becomes "Alice".
  3. Final Answer:

    Hello, Alice! -> Option A
  4. 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

  1. Step 1: Check variable usage inside function

    The function uses $name, but no variable named name is set or passed.
  2. 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.
  3. Final Answer:

    Variable $name is not set or passed -> Option D
  4. 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

  1. Step 1: Understand arithmetic evaluation in Bash

    To add numbers, use $((expression)). Inside, use $1 and $2 for arguments.
  2. 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.
  3. Final Answer:

    sum() { echo $(($1 + $2)) } sum 3 5 -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard