Interview › Scripting (Bash, Groovy)
What is the difference between a function returning a value via echo versus return? [Basic]
Answer
echo outputs data to stdout, while return sets the function's exit status. In Bash, return cannot return arbitrary strings and is limited to numeric status values, so I use echo/printf for data and return for success or failure.
Technical explanation
Command substitution captures stdout, so any logging printed to stdout can pollute returned data.
Use printf instead of echo for predictable formatting.
Send diagnostic messages to stderr and reserve stdout for machine-readable output when a caller captures it.
Hands-on example
lookup_port() { local service="$1" case "$service" in api) printf '8080\n' ;; worker) printf '9090\n' ;; *) echo "unknown service: $service" >&2; return 1 ;; esac}
port=$(lookup_port api) || exit 1echo "port=$port"
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]