SC2151 – ShellCheck Wiki

See this page on GitHub


Only one integer 0-255 can be returned. Use stdout for other data.

Problematic code:

myfunc() {
  return foo bar

Correct code:

myfunc() {
  echo foo
  echo bar
  return 0


In bash, return can only be used to signal success or failure (0 = success, 1-255 = failure).

To return textual or multiple values from a function, write them to stdout and capture them with command substitution instead.

See SC2152 for more information.



ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.