Skriptdatei in ein anderes Bash-Skript einschließen

Faaiq Bilal 20 Juni 2023
Skriptdatei in ein anderes Bash-Skript einschließen

Dieser Artikel beschreibt verschiedene Methoden zum Einfügen einer Bash-Skriptdatei in eine andere Skriptdatei.

Datei in ein Bash-Skript einschließen

Das Einbinden oder Wiederverwenden eines Skripts ist in Bash sehr einfach. Das Schlüsselwort source ähnelt dem #include in C/C++.

Um ein Skript wiederzuverwenden, verwenden Sie das Schlüsselwort source mit dem Namen/vollständigen Dateipfad, je nachdem, ob Sie das Skript aus demselben oder einem anderen Verzeichnis importieren möchten.

Im Allgemeinen ist die Syntax wie folgt angegeben:

source <filename>

Nehmen wir an, wir haben ein Skript namens sorting.sh mit folgendem Inhalt.

TEST_VAR="Hello"

Die Syntax wäre wie folgt.

Bash-Skript:

#!/bin/bash
source sorting.sh
echo ${TEST_VAR}

Alternativ kann das . operator ist eine Abkürzung für das Schlüsselwort source und funktioniert ähnlich.

Bash-Skript:

#!/bin/bash
sorting.sh
echo ${TEST_VAR}

Beide obigen Beispiele geben die folgende Ausgabe zurück.

Ausgang:

Hello

Notiere dass der . Der Operator ist POSIX-kompatibel, das Schlüsselwort source dagegen nicht. Das bedeutet, dass das . -Operator funktioniert in allen POSIX-Shell-Umgebungen, source möglicherweise nicht, aber im Kontext von Bash ist es absolut sicher, das Schlüsselwort source zu verwenden.

Ein weiterer zu beachtender Punkt ist, dass source nicht genau wie include in C/C++ funktioniert, da es das vollständige Quellskript im Zielskript ausführt, anstatt einzelne Funktionen aufrufen und ausführen zu können.

Der sicherste Weg, ein Skript in einem anderen Skript zu verwenden, das mit allen Verzeichnisebenen funktioniert und keine Fehler aufgrund unterschiedlicher Verzeichnisse oder auf unterschiedlichen Ebenen verursacht, ist die Verwendung des folgenden Skripts.

Bash-Skript:

$(dirname "$0")/sorting.sh

Verwandter Artikel - Bash File