Skip to content
Vidar Holen edited this page Nov 3, 2022 · 1 revision

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

Related resources:

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

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