GNU/Linux >> Znalost Linux >  >> Linux

Bash Shebang

Pokud se učíte skriptování Bash čtením kódu jiných lidí, možná jste si všimli, že první řádek ve skriptech začíná znakem #! znaky a cestu k interpretu Bash.

Tato sekvence znaků (#! ) se nazývá shebang a používá se k tomu, aby řekl operačnímu systému, který interpret má použít k analýze zbytku souboru.

Směrnice pro tlumočníky Shebang #

Direktiva interpreta Shebang má následující podobu:

#!interpreter [arguments]
  • Směrnice musí být na prvním řádku skriptu.
  • Směrnice musí začínat shebang #!
  • Bílá mezera za znaky shebang je volitelná.
  • Interpret je úplná cesta k binárnímu souboru (např.:/bin/sh , /bin/bash ).
  • Argumenty tlumočníka jsou volitelné.

Příklady:

  • #!/bin/bash - Používá bash analyzovat soubor.
  • #!/usr/bin/env perl - Používá env příkaz k nalezení cesty k perl spustitelný.
  • #!/usr/bin/python Spustí soubor pomocí python binární.

Použití Shebang ve skriptech Bash #

Pokud není zadán shebang a uživatel spouštějící Bash skript používá jiný Shell, bude skript analyzován jakýmkoliv výchozím interpretem, který daný Shell používá. Například výchozí interpret pro bash je bash a pro zsh je sh . Abyste zajistili, že váš skript bude vždy interpretován pomocí Bash, budete muset zadat cestu ke spustitelnému souboru pomocí shebang.

Existují dva způsoby, jak použít direktivu Shebang a nastavit interpret.

  1. Použití absolutní cesty k binárnímu bash:

    #!/bin/bash
  2. Pomocí env nástroj:

    #!/usr/bin/env bash

Výhodou použití druhého přístupu je, že bude hledat bash spustitelný v $PATH uživatele environmentální proměnná. Pokud existuje více než jedna cesta k bash , skript použije první z nich.

Když použijete první možnost k přidání možnosti do nabídky prostředí Bash, předejte ji interpretovi. Například ke spuštění skriptu v režimu ladění byste použili #!/bin/bash -x .Pokud používáte env pak musíte použít set prohlásit opci. Chcete-li povolit režim ladění, přidejte set -x po linii shebang.

Ukázkový skript #

Vytvořme jednoduchý skript pomocí shebang, který vypíše „Hello, World“. Otevřete textový editor a vložte následující řádek:

nano hello_world
hello_world
#!/bin/bash

echo "Hello, World"

Abyste mohli skript spustit bez zadání interpretu z příkazového řádku, musíte soubor nastavit jako spustitelný:

chmod +x hello_world

Nyní, pokud můžete skript spustit zadáním ./ následovaný názvem skriptu:

./hello_world
Hello, World

Překonání Shebang #

Pokud z nějakého důvodu chcete přepsat interpret nastavený v řádku Shebang, musíte skript spustit tak, že výslovně specifikujete požadovaný shell.

Například ke spuštění skriptu, který má #!/bin/sh specifikované v řádku Shebang pomocí bash shell byste napsali:

bash hello_world

Vezměte prosím na vědomí, že není dobrý nápad přepsat interpret shellu, protože to může vést k neočekávanému chování skriptu.

Závěr č.

Nyní byste měli dobře rozumět tomu, co je Shebang a jak jej používat ve skriptech Bash.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Bash skriptování (I)

  2. Který Shell Interpreter spouští skript s No Shebang?

  3. Řazení v bash

  1. Limit linky Shebang v bash a linuxovém jádře

  2. Porovnání dat v Bash

  3. Co dělá -e v bash shebang?

  1. Více argumentů v Shebang?

  2. Je povoleno místo mezi #! A /bin/bash v Shebangu?

  3. příkaz pro export bash