Skip to content
Vidar Holen edited this page Oct 4, 2015 · 2 revisions

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
}

Rationale:

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.

Exceptions:

None

ShellCheck

Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally