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"

Preparing for an interview?

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

← All Scripting (Bash, Groovy) questions