Shebang (Unix)
Shebang je řádek na začátku skriptu začínající znaky křížek a vykřičník, za nimiž (po případné mezeře) je jméno programu, kterým má být skript interpretován (obvykle včetně cesty a někdy i s parametry). Jméno je složeninou z anglických slov sharp a bang (slangové názvy pro znaky křížek a vykřičník). Konstrukce se objevila ve Version 6 Unixu po vytvoření C shellu, který má syntaxi výrazně odlišnou od původního Thompson shellu, aby se odlišilo, jakým shellem má být skript interpretován. Protože množství skriptovacích jazyků stále narůstá a ne vždy je možné odlišit skripty podle syntaxe, je používání shebangu stále důležitější.
Konstrukci shebang využívá i příkaz file pro rozlišování druhů souborů. Má podobnou roli jako signatury a magické konstanty u binárních souborů.
Aby se skript dal spustit pouhým zadáním svého jména, musí být splněny následující podmínky:
- začíná konstrukcí shebang
- má oprávnění x (execute)
- je umístěn v adresáři, jehož jméno je uvedeno v proměnné prostředí PATH.
Příklady
Příklady řádků shebang:
#!/bin/sh
– interpretovat soubor Bourne nebo kompatibilním shellem umístěným v /bin/sh#!/bin/bash
– interpretovat soubor interpretem Bash.#!/bin/csh -f
– interpretovat soubor interpretem C shell csh nebo kompatibilním shellem; parametr -f potlačí provedení uživatelského .cshrc souboru při startu#!/usr/bin/perl -T
– interpretovat soubor programem Perl s parametrem pro rozšířené bezpečnostní kontroly vstupních dat#!/usr/bin/env python
– interpretovat programem Python s automatickým vyhledáním cesty k interpretru Pythonu příkazem env
Součástí shebang mohou být i parametry, které budou předány interpretu. Jejich interpretace je však v různých systémech různá, proto se doporučuje používat pouze jeden parametr neobsahující bílé znaky.