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ší.

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.

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:

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.

Odkazy

Související články

Externí odkazy

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.