Shebang: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 18: Line 18:


=Bash=
=Bash=
<syntaxhighlight lang='text'>
<syntaxhighlight lang='bash'>
#!/usr/bin/env bash
#!/usr/bin/env bash
echo "."
echo "."

Revision as of 00:30, 2 May 2023

External

Internal

Overview

The #! sequence of characters at the beginning of a file indicates that the file is a script: a set of commands to be fed into an interpreter. The #! is actually a two-byte magic number, a special marker that designates a file type, or in this case an executable script. The path that follows #! is the path to the program that interprets the commands in the script, whether it be a shell, a programming language, or a utility. The interpreter executes the commands in the script, starting with the line following the #! line:

#! <interpreter> [optional-args]

The Path Must be Absolute

The interpreter should always be specified by absolute path to ensure that the script can be executed from any directory. When it's not, it's generally a typo and shell static checkers usually warn against this syntax.

Bash

#!/usr/bin/env bash
echo "."

Python