SC2127 – ShellCheck Wiki

See this page on GitHub

Sitemap


To use ${ ..; }, specify #!/usr/bin/env ksh.

(Or "To use cases with ;;&, specify #!/usr/bin/env bash)

Problematic code:

#!/usr/bin/env bash
var=${ mycmd; };

or

#!/usr/bin/env ksh
case "$1" in
  foo) echo "Foo!" ;;&
  f*) echo "F-something at least" ;;
esac

Correct code:

#!/usr/bin/env ksh
var=${ mycmd; };

or

#!/usr/bin/env bash
case "$1" in
  foo) echo "Foo!" ;;&
  f*) echo "F-something at least" ;;
esac

Rationale:

You are using a shell syntax feature not supported by the script's shell. Either rewrite the construct, or switch to a different shell interpreter.

Exceptions:

None


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