Sök…


Syntax

  • Använd /bin/bash som bastolk:

    #! / Bin / bash

  • Sök bash-tolk i PATH miljövariabeln med env körbar:

    #! / usr / bin / env bash

Anmärkningar

Ett vanligt misstag är att försöka köra Windows slutlinje formaterade \r\n skriptfiler på UNIX / Linux-system, i det här fallet är den använda skriptolkaren i shebang:

/bin/bash\r

Och hittas i glömska inte men kan vara svårt att räkna ut.

Direkt shebang

För att köra en skriptfil med bash tolkaren måste den första raden i en skriptfil ange den absoluta sökvägen till den bash köras:

#!/bin/bash

bash banan i shebanget löses och används endast om ett skript direkt startas så här:

./script.sh

Skriptet måste ha körningstillstånd.

Shebang ignoreras när en bash tolk uttryckligen indikeras för att köra ett skript:

bash script.sh

Env shebang

För att utföra ett skript fil med bash körbara finns i PATH miljövariabler med hjälp av exekverbara env måste den första raden i en skriptfil indikerar den absoluta sökvägen till env körbara med argumentet bash :

#!/usr/bin/env bash

env vägen i shebanget löses och används bara om ett skript direkt startas så här:

script.sh

Skriptet måste ha körningstillstånd.

Shebang ignoreras när en bash tolk uttryckligen indikeras för att köra ett skript:

bash script.sh

Andra shebangs

Det finns två typer av program kärnan känner till. Ett binärt program identifieras av dess ELF ( E xtenable L oadable F ormat) -huvud, som vanligtvis produceras av en kompilator. Den andra är skript av alla slag.

Om en fil startar på den allra första raden med sekvensen #! då måste nästa sträng vara ett söknamn för en tolk. Om kärnan läser den här raden kallar den tolkens namn med detta söknamn och ger alla följande ord i den här raden som argument till tolkaren. Om det inte finns någon fil med namnet "något" eller "fel":

#!/bin/bash something wrong
echo "This line never gets printed"

bash försöker utföra sitt argument "något fel" som inte finns. Namnet på skriptfilen läggs också till. För att se detta tydligt använder du en eko shebang:

#"/bin/echo something wrong 
# and now call this script named "thisscript" like so:
# thisscript one two
# the output will be:
something wrong ./thisscript one two

Vissa program som awk använder den här tekniken för att köra längre skript som finns i en diskfil.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow