Shebang: Difference between revisions
Jump to navigation
Jump to search
(→Bash) |
(→Python) |
||
Line 24: | Line 24: | ||
=Python= | =Python= | ||
<syntaxhighlight lang='bash'> | |||
#!/usr/bin/env python | |||
print('.') | |||
</syntaxhighlight> |
Revision as of 00:31, 2 May 2023
External
- https://en.wikipedia.org/wiki/Shebang_(Unix)#:~:text=In%20computing%2C%20a%20shebang%20is,bang%2C%20or%20hash%2Dpling.
- https://tldp.org/LDP/abs/html/sha-bang.html
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
#!/usr/bin/env python
print('.')