Skip to content

Files

Latest commit

 

History

History
39 lines (26 loc) · 910 Bytes

SC2152.md

File metadata and controls

39 lines (26 loc) · 910 Bytes

Pattern: Use of return with invalid result

Issue: -

Description

In many languages, return is used to return from the function with a final result.

In bash, return can only be used to signal success or failure (0 = success, 1-255 = failure), more akin to throw/raise in other languages.

Results should instead be written to stdout and captured:

message=$(somefunc)
echo "The function wrote: $message"

In functions that return small integers, such as getting the cpu temperature, the value should still be written to stdout. return should be reserved for error conditions, such as "can't determine CPU temperature".

Example of incorrect code:

somefunc() {
  return "Hello $USER"
}

Example of correct code:

somefunc() {
  echo "Hello $USER"
  return 0
}

Further Reading