Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Obsah:

Anonim

Tato posloupnost znaků ( #! ) Se nazývá shebang a používá se ke sdělení operačnímu systému, který interpret má použít k analýze zbytku souboru.

Směrnice pro tlumočníky Shebang

Směrnice pro tlumočníky Shebang má následující podobu:

#!interpreter

  • Směrnice musí být prvním řádkem skriptu. Směrnice musí začínat řetězcem shebang #! Prázdné místo za znaky shebangu je volitelné. Interpreter je úplná cesta k binárnímu souboru (např.: /bin/sh , /bin/bash ). Argumenty interpreteru jsou volitelné.

Příklady:

  • #!/bin/bash - K analýze souboru použije bash . #!/usr/bin/env perl - Použije příkaz env k nalezení cesty ke spustitelnému perl . #!/usr/bin/python Spustí soubor pomocí python binárního python .

Použití Shebangu v Bash skriptech

Pokud není zadán shebang a uživatel, který spouští skript Bash, používá jiný Shell, skript bude analyzován podle toho, co v tomto Shell používá výchozí interpret. Například výchozí interpret pro bash je bash a pro zsh je sh . Aby bylo zajištěno, že váš skript bude vždy interpretován pomocí Bashu, je třeba zadat spustitelnou cestu pomocí shebangu.

Existují dva způsoby použití směrnice Shebang a nastavení tlumočníka.

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

    #!/bin/bash

    Pomocí obslužného programu env :

    #!/usr/bin/env bash

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

Při použití první možnosti přidejte do dodávky shellu Bash volbu předanou interpretovi. Například pro spuštění skriptu v režimu ladění byste použili #!/bin/bash -x . Pokud používáte metodu env , musíte pro deklarování volby použít set . Chcete-li povolit režim ladění, přidejte za řádek shebang set -x .

Příklad skriptu

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

nano hello_world Ahoj světe

#!/bin/bash echo "Hello, World"

Aby bylo možné skript spustit, aniž byste zadali tlumočníka z příkazové řádky, musíte provést spustitelný soubor:

chmod +x hello_world

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

./hello_world

Hello, World

Převažující Shebang

Pokud chcete z nějakého důvodu přepsat sadu tlumočníků v řádku Shebang, musíte skript spustit explicitním zadáním hledaného shellu.

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

bash hello_world

Vezměte prosím na vědomí, že není vhodné přepisovat 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 svých Bash skriptech.

bash terminál