Shebang (Unix)
Author
Albert FloresZnaky dvojitý křížek a vykřičník, které vytvářeji tzv. „shebang“ (též „hash-bang“ nebo „sharp bang“). Za těmito dvěma znaky (na stejném řádku) je uvedena cesta k programu, který má daný skript interpretovat. 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 a (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 * #. +more/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.
Odkazy
Související články
Skript (programování) * Interpretovaný jazyk * Kompilovaný jazyk * Dávkový soubor * Shellový skript * Shell (programování)