Linux: Was macht »$0« in einem Bash Script? – Mit Beispielen

    $0 in einem Script steht für den Namen des Scripts selbst. Anders ausgedrückt, repräsentiert es den Pfad oder den Namen der ausführbaren Datei, die gerade ausgeführt wird. Meistens wird $0 wird beispielsweise für Entscheidungen basierend auf dem Script-Namen verwendet oder um Log-Nachrichten zu generieren.

    Beispiele

    Scriptname anzeigen

    Mit $0 kann der Name des aktuellen Scripts angezeigt werden. Dies kann hilfreich sein, um Informationen über das Script selbst zu protokollieren oder Fehlermeldungen mit dem entsprechenden Scriptnamen zu versehen.

    #!/bin/bash
    echo "Das Script, das gerade ausgeführt wird, ist: $0"

    Wenn man das Script dann ausführt:

    $ bash script1.sh
    Das Script, das gerade ausgeführt wird, ist: script1.sh
    $ 

    Verwendung in Bedingungen

    Manchmal müssen bestimmte Aktionen basierend auf dem Namen des Scripts ausgeführt werden. Die Verwendung von $0 in Bedingungen ermöglicht es, verschiedene Verhaltensweisen abhängig davon zu steuern, wie das Script aufgerufen wird – ob es direkt ausgeführt oder in ein anderes Script eingebunden wird.

    #!/bin/bash
    if [ "$0" = "./script2.sh" ]; then
        echo "Das Script wurde direkt aufgerufen."
    else
        echo "Das Script wurde eingebunden."
    fi

    Wenn man das Script dann ausführt:

    $ bash script2.sh
    Das Script wurde direkt aufgerufen.
    $ 

    Oder als Teil eines anderen Scripts

    #!/bin/bash
    source ./script2.sh

    Wenn man das Script dann ausführt:

    $ bash einbindendes_script.sh
    Das Script wurde eingebunden.
    $ 

    Pfad extrahieren

    Manchmal benötigt man den Pfad, in dem sich das Script befindet, um beispielsweise Dateien relativ zum Scriptpfad zu referenzieren.

    #!/bin/bash
    script_path=$(dirname "$0")
    echo "Das Script befindet sich im Pfad: $script_path"

    Wenn man das Script dann ausführt:

    $ bash script3.sh
    Das Script befindet sich im Pfad: .
    $ 

    Der Punkt . steht für das aktuelle Arbeitsverzeichnis, da das Script im aktuellen Verzeichnis ausgeführt wird. Je nachdem, von welchem Pfad aus das Script aufgerufen wird, kann der Pfad variieren.

    Anhang

    Links

    • https://linuxhandbook.com/bash-dollar-0/: Dieser Artikel auf LinuxHandbook erklärt die Bedeutung der $0-Variable in einem Bash-Skript und wie sie verwendet wird.
    • https://linuxhint.com/0-bash-script/: Der Artikel auf LinuxHint wird die Verwendung der $0-Variable in Bash-Skripten erläutert und gezeigt, wie sie in Bedingungen und zur Pfadextraktion verwendet werden kann.
    • https://bash.cyberciti.biz/guide/$0: Der Leitfaden auf cyberciti.biz bietet eine Einführung in die Verwendung der $0-Variable in Bash-Skripten und erklärt ihre Bedeutung sowie verschiedene Anwendungsbeispiele.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert