3 SC1008
wileyhy edited this page 2024-10-05 23:14:21 -07:00

This shebang was unrecognized. ShellCheck only supports sh/bash/dash/ksh. Add a 'shell' directive to specify.

Problematic code:

#!/bin/mywrapper
echo "Hello World"

Correct code:

#!/bin/mywrapper
# shellcheck shell=bash
echo "Hello World"

Rationale:

You have specified a shebang that ShellCheck doesn't recognize. This can be due to invoking the script via a wrapper, specifying a dummy like #!/bin/false to prevent execution, or trying to check a script for a non-Bourne shell or tool.

If this really is a sh/bash/dash/ksh script, please add a shell directive after the shebang to tell ShellCheck how to interpret the script, as in the example. You can also specify the shell with the -s flag.

If this is a script in some other language, like #!/bin/sed for a sed script, then sorry -- ShellCheck does not support sed, awk, expect scripts. It only supports Bourne style shell scripts.

Exceptions:

None.

https://www.gnu.org/software/bash/manual/html_node/Shell-Scripts.html https://mywiki.wooledge.org/BashProgramming?highlight=%28shebang%29#Shebang https://www.gnu.org/software/gawk/manual/html_node/Executable-Scripts.html https://mywiki.wooledge.org/BashPitfalls#On_UTF-8_and_Byte-Order_Marks_.28BOM.29

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