Android

Bash shebang

Shell Scripting - Introduction & Shebang

Shell Scripting - Introduction & Shebang

Inhaltsverzeichnis:

Anonim

Diese Zeichenfolge ( #! ) Heißt shebang und teilt dem Betriebssystem mit, mit welchem ​​Interpreter der Rest der Datei analysiert werden soll.

Shebang-Dolmetscher-Richtlinie

Die Shebang-Interpreter-Direktive hat folgende Form:

#!interpreter

  • Die Direktive muss die erste Zeile im Skript sein. Die Direktive muss mit shebang #! Leerzeichen nach den shebang-Zeichen sind optional. Interpreter ist der vollständige Pfad zu einer Binärdatei (z. B. /bin/sh , /bin/bash ). Interpreter-Argumente sind optional.

Beispiele:

  • #!/bin/bash - Verwendet bash zum Parsen der Datei. #!/usr/bin/env perl - Verwendet den Befehl env , um den Pfad zur ausführbaren perl Datei zu ermitteln. #!/usr/bin/python Führt die Datei mit der python Binärdatei aus.

Verwendung von Shebang in Bash-Skripten

Wenn kein shebang angegeben ist und der Benutzer, der das Bash-Skript ausführt, eine andere Shell verwendet, wird das Skript von dem Standardinterpreter analysiert, der von dieser Shell verwendet wird. Der Standardinterpreter für bash ist beispielsweise bash und für zsh ist sh . Um sicherzustellen, dass Ihr Skript immer mit Bash interpretiert wird, müssen Sie den ausführbaren Pfad mit shebang angeben.

Es gibt zwei Möglichkeiten, die Shebang-Direktive zu verwenden und den Interpreter festzulegen.

  1. Verwenden des absoluten Pfads zur Bash-Binärdatei:

    #!/bin/bash

    Verwenden des Dienstprogramms env :

    #!/usr/bin/env bash

Der Vorteil des zweiten Ansatzes besteht darin, dass nach der ausführbaren bash Datei in der Umgebungsvariablen $PATH des Benutzers gesucht wird. Wenn mehr als ein Pfad zum bash , wird der erste vom Skript verwendet.

Wenn Sie mit der ersten Option eine Option zum Bash-Shell-Angebot hinzufügen, übergeben Sie diese an den Interpreter. Um das Skript beispielsweise in einem Debug-Modus auszuführen, verwenden Sie #!/bin/bash -x . Wenn Sie die env Methode verwenden, müssen Sie set , um die Option zu deklarieren. Um den Debug-Modus zu aktivieren, fügen Sie nach der shebang-Zeile set -x hinzu.

Beispielskript

Lassen Sie uns mit shebang ein einfaches Skript erstellen, das "Hello, World" ausgibt. Öffne deinen Texteditor und füge die folgende Zeile ein:

nano hello_world Hallo Welt

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

Um das Skript ohne Angabe des Interpreters über die Befehlszeile ausführen zu können, müssen Sie die Datei ausführbar machen:

chmod +x hello_world

Wenn Sie das Skript jetzt ausführen können, indem Sie ./ gefolgt vom ./ eingeben:

./hello_world

Hello, World

Den Shebang überschreiben

Wenn Sie aus irgendeinem Grund den in der Shebang-Zeile festgelegten Interpreter überschreiben möchten, müssen Sie das Skript ausführen, indem Sie die gewünschte Shell explizit angeben.

Wenn Sie beispielsweise ein Skript ausführen möchten, für das in der Shebang-Zeile #!/bin/sh angegeben ist, verwenden Sie die bash Shell, die Sie bash würden:

bash hello_world

Bitte beachten Sie, dass es keine gute Idee ist, den Shell-Interpreter zu überschreiben, da dies zu einem unerwarteten Verhalten des Skripts führen kann.

Fazit

Inzwischen sollten Sie ein gutes Verständnis dafür haben, was Shebang ist und wie Sie es in Ihren Bash-Skripten verwenden können.

Bash-Terminal