Shebang (Unix)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Znaky 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.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top