Shebang se skládá ze znaku mřížky (hash – #) a vykřičníku (bang – !), po kterých následuje absolutní cesta k interpretu. Nachází se vždy na prvním řádku a na prvním sloupci souboru.
Bez shebangu by systém nevěděl, jak soubor spustit. Museli byste program volat ručně, například:
python3 skript.py
Pokud však skript obsahuje správný shebang a má nastavená práva ke spuštění (chmod +x), můžete ho volat přímo jako spustitelný program:
./skript.pyPodle toho, v jakém jazyce skript píšete, se liší i podoba shebangu:
| Jazyk | Shebang | Poznámka |
|---|---|---|
| Bash | #!/bin/bash | Standardní cesta k Bash shellu. |
| Python 3 | #!/usr/bin/env python3 | Doporučený způsob (najde Python v cestě PATH). |
| Perl | #!/usr/bin/perl | Tradiční cesta pro Perl skripty. |
| Node.js | #!/usr/bin/env node | Pro skripty v JavaScriptu. |
Všimněte si rozdílu mezi #!/bin/python3 a #!/usr/bin/env python3.
Použití příkazu env je považováno za „best practice“ a je přenositelnější (portable). Různé linuxové distribuce mohou mít Python nainstalovaný v různých složkách, ale nástroj env ho vždy najde podle systémové proměnné PATH.
Když se pokusíte spustit skript:
1. Jádro (kernel) se podívá na první dva bajty souboru. 2. Pokud uvidí magické číslo ''0x23 0x21'' (ASCII pro ''#!''), ví, že jde o skript. 3. Přečte zbytek prvního řádku a spustí uvedený interpret (např. ''/bin/bash''). 4. Původní skript mu předá jako argument.
\r na konci řádku. Interpret pak hledá program jako /bin/bash\r, který neexistuje.Zajímavost: Název „shebang“ je pravděpodobně staženinou z „SHArp“ (mřížka) a „BANG“ (vykřičník). V hudební terminologii se mřížce říká „sharp“, v tiskovém slangu se vykřičníku říká „bang“.