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