Bird
Raised Fist0
Bash Scriptingscripting~20 mins

Return values (return and echo) in Bash Scripting - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Return Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this Bash function call?
Consider the following Bash script. What will be printed when the function is called?
Bash Scripting
myfunc() {
  echo "Hello"
  return 5
}
myfunc
echo $?  # prints the return value of the function
AHello\n5
B5\nHello
CHello
D5
Attempts:
2 left
💡 Hint
Remember that echo prints to standard output, and return sets the exit status.
💻 Command Output
intermediate
2:00remaining
What does this script output?
What is the output of this Bash script?
Bash Scripting
func() {
  local val=10
  echo $val
  return 3
}
result=$(func)
echo "$result"
echo $?  # exit status of func
A3\n10
B10\n3
C10\n0
D3\n0
Attempts:
2 left
💡 Hint
Check what is captured by command substitution and what is the exit status.
📝 Syntax
advanced
2:00remaining
Which option causes a syntax error in a Bash function?
Which of these function definitions will cause a syntax error?
Amyfunc() { echo "Hi"; return 1; }
Bmyfunc() { echo "Hi"; return 1 }
C} ;1 nruter ;"iH" ohce { )(cnufym
Dmyfunc() { echo "Hi" return 1; }
Attempts:
2 left
💡 Hint
Look for missing semicolons or command separators.
🚀 Application
advanced
2:00remaining
How to capture both output and return code from a Bash function?
You want to capture the output of a Bash function and also check its return code. Which snippet does this correctly?
A
output=$(myfunc; ret=$?)
echo "$output"
echo $ret
B
ret=$(myfunc)
output=$?
echo "$output"
echo $ret
C
output=$(myfunc)
ret=$?
echo "$output"
echo $ret
D
output=myfunc
ret=$?
echo "$output"
echo $ret
Attempts:
2 left
💡 Hint
Remember that $? holds the exit status of the last command.
🧠 Conceptual
expert
2:00remaining
What is the difference between return and echo in Bash functions?
Which statement best describes the difference between return and echo in Bash functions?
A"return" sets the function's exit status, "echo" prints text to standard output.
B"return" sends a value to the caller as output, "echo" sets the function's exit status.
C"return" prints text to standard output, "echo" sets the function's exit status.
D"return" and "echo" both print text but differ in syntax.
Attempts:
2 left
💡 Hint
Think about what return and echo do in a shell script.

Practice

(1/5)
1. In bash scripting, what does the return command inside a function do?
easy
A. It stops the entire script immediately.
B. It sends a numeric status code back to the caller.
C. It prints text output to the terminal.
D. It saves the function output to a file.

Solution

  1. Step 1: Understand the purpose of return in bash functions

    The return command sends a numeric exit status (0-255) back to the caller, indicating success or failure.
  2. Step 2: Differentiate from echo

    Unlike echo, which prints text output, return only sends a number status, not text.
  3. Final Answer:

    It sends a numeric status code back to the caller. -> Option B
  4. Quick Check:

    return = numeric status [OK]
Hint: Remember: return sends number status, echo prints text [OK]
Common Mistakes:
  • Thinking return prints output like echo
  • Using return to output strings
  • Confusing return with exit
2. Which of the following is the correct syntax to return a status code 5 from a bash function named check?
easy
A. exit 5
B. echo 5
C. return(status=5)
D. return 5

Solution

  1. Step 1: Recall bash function return syntax

    To return a status code from a function, use return followed by the number, e.g., return 5.
  2. Step 2: Identify incorrect options

    echo 5 prints text, return(status=5) is invalid syntax, and exit 5 exits the whole script.
  3. Final Answer:

    return 5 -> Option D
  4. Quick Check:

    Use return number syntax [OK]
Hint: Use 'return' followed by number to send status [OK]
Common Mistakes:
  • Using echo instead of return for status
  • Trying to use parentheses in return
  • Using exit inside function to return status
3. What will be the output of this script?
myfunc() {
  echo "Hello"
  return 3
}
myfunc
echo $? 
medium
A. 3\nHello
B. Hello\n0
C. Hello\n3
D. 3\n3

Solution

  1. Step 1: Analyze function output

    The function prints "Hello" using echo, so "Hello" appears first.
  2. Step 2: Check return status and echo it

    The function returns 3, so $? after calling it is 3, which is printed next.
  3. Final Answer:

    Hello\n3 -> Option C
  4. Quick Check:

    echo prints text, return sets status [OK]
Hint: echo prints text first, $? shows return code after function [OK]
Common Mistakes:
  • Confusing echo output with return value
  • Expecting return value to print automatically
  • Ignoring that $? holds last return status
4. Identify the error in this bash function:
myfunc() {
  return "Success"
}
myfunc
echo $?
medium
A. return expects a number, not a string
B. echo cannot print return values
C. Function missing parentheses
D. return must be last command in function

Solution

  1. Step 1: Understand return command rules

    In bash, return must be followed by a numeric status (0-255), not a string.
  2. Step 2: Identify the error in the code

    The code tries to return "Success" (a string), which causes an error.
  3. Final Answer:

    return expects a number, not a string -> Option A
  4. Quick Check:

    return only accepts numbers [OK]
Hint: return only accepts numbers, not text [OK]
Common Mistakes:
  • Trying to return strings with return
  • Confusing echo and return usage
  • Assuming return prints output
5. How can you capture the text output of a bash function greet that uses echo inside, and store it in a variable msg?
hard
A. msg=$(greet)
B. msg=return greet
C. msg=`return greet`
D. msg=echo greet

Solution

  1. Step 1: Understand capturing function output

    To capture text output from a function that uses echo, use command substitution: $(function_name).
  2. Step 2: Identify correct syntax

    msg=$(greet) runs greet and stores its echo output in msg. Other options misuse return or echo.
  3. Final Answer:

    msg=$(greet) -> Option A
  4. Quick Check:

    Use $(function) to capture echo output [OK]
Hint: Use $(function) to capture echo output in variable [OK]
Common Mistakes:
  • Using return instead of command substitution
  • Assigning echo command directly to variable
  • Using backticks incorrectly with return
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