Bash                
            Skript Shebang
        
        
            
    Suche…
Syntax
- Verwenden Sie - /bin/bashals Bash-Interpreter:- #! / bin / bash 
- Durchsuchen Sie den bash-Interpreter in der Umgebungsvariablen - PATHmit der ausführbaren Datei- env:- #! / usr / bin / env bash 
Bemerkungen
 Ein häufiger Fehler ist zu versuchen , Windows End-Linie formatierte auszuführen \r\n - Skriptdateien auf UNIX / Linux - Systemen, in diesem Fall das verwendete Skript - Interpreter in dem shebang ist: 
/bin/bash\r
Und wird unwissentlich nicht gefunden, kann aber schwer herauszufinden sein.
Direkte Shebang
 Um eine Skriptdatei mit dem bash Interpreter auszuführen, muss die erste Zeile einer Skriptdatei den absoluten Pfad zur zu verwendenden ausführbaren bash Datei angeben: 
#!/bin/bash
 Der bash Pfad im Shebang wird aufgelöst und nur verwendet, wenn ein Skript direkt wie folgt gestartet wird: 
./script.sh
Das Skript muss über Ausführungsberechtigung verfügen.
 Der Shebang wird ignoriert, wenn ein bash Interpreter explizit angegeben wird, um ein Skript auszuführen: 
bash script.sh
Env Shebang
 Um eine Skriptdatei mit dem Ausführen bash ausführbaren Datei in dem gefundenen PATH - Umgebungsvariable durch den ausführbaren Datei unter Verwendung von env , die ersten Zeile einer Skriptdatei muss den absoluten Pfad zur anzuzeigen , env ausführbaren Datei mit dem Argumente bash : 
#!/usr/bin/env bash
 Der env Pfad im Shebang wird aufgelöst und nur verwendet, wenn ein Skript direkt wie folgt gestartet wird: 
script.sh
Das Skript muss über Ausführungsberechtigung verfügen.
 Der Shebang wird ignoriert, wenn ein bash Interpreter explizit angegeben wird, um ein Skript auszuführen: 
bash script.sh
Andere Shebangs
Es gibt zwei Arten von Programmen, die der Kernel kennt. Ein binäres Programm wird durch seinen ELF-Header ( E xtenable L oadable F ormat) identifiziert, der normalerweise von einem Compiler erzeugt wird. Das zweite sind Skripte jeglicher Art.
Wenn eine Datei in der ersten Zeile mit der Sequenz # beginnt ! dann muss die nächste Zeichenfolge ein Pfadname eines Interpreters sein. Wenn der Kernel diese Zeile liest, ruft er den mit diesem Pfadnamen benannten Interpreter auf und übergibt dem Interpreter alle folgenden Wörter in dieser Zeile als Argumente. Wenn es keine Datei mit dem Namen "etwas" oder "falsch" gibt:
#!/bin/bash something wrong
echo "This line never gets printed"
bash versucht, sein Argument "etwas Falsches" auszuführen, das nicht existiert. Der Name der Skriptdatei wird ebenfalls hinzugefügt. Um dies klar zu sehen, verwenden Sie ein Echo 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
Einige Programme wie awk verwenden diese Technik, um längere Skripts auszuführen, die sich in einer Festplattendatei befinden.