Shebang gets its name from # and ! which are known as “shell” and “bang” respectively. It is used in Linux system scripts to indicate the path to “Bash” (the standard command-line interpreter for most Linux systems).
How the shebang is used will depend on what language you are creating the script for. Here are some common shebang syntaxes:
Script Language | Syntax |
Standard bash shell | #!/bin/bash |
System boot script | #!/bin/sh |
Perl | #!/usr/bin/perl |
Python | #!/usr/bin/python |
Python 2.6 | #!/usr/bin/python2.6 |
Python 3 | #!/usr/bin/python3 |
Ruby | #!/usr/bin/ruby |
PHP | #!/usr/local/bin/php |
From the table above, you may note that the shebang for different versions of Python each has individual syntax. This separation is necessary since the interpreter for each of those versions is located in separate directories.
Excluding a Shebang from Your Scripts
If the shebang is not included in a script file it is typical that the default path will be “/bin/sh.” However, even if that is the desired outcome it is generally preferable to specify the “/bin/sh” with a shebang.
The exception to this rule is when a script is sourced in another script. In cases such as this, it is acceptable not to include the shebang.