
Die source
command liest und führt Befehle aus der als Argument angegebenen Datei in der aktuellen Shell-Umgebung aus. Es ist nützlich, Funktionen, Variablen und Konfigurationsdateien in Shell-Skripte zu laden.
source
ist eine in Bash und andere beliebte Shells, die in Linux- und UNIX-Betriebssystemen verwendet werden, integrierte Shell. Sein Verhalten kann von Shell zu Shell leicht unterschiedlich sein.
Quellbefehlssyntax #
Die Syntax für die source
Befehl lautet wie folgt:
source FILENAME [ARGUMENTS]
. FILENAME [ARGUMENTS]
source
und.
(ein Punkt) sind derselbe Befehl.- Falls der
FILENAME
kein vollständiger Pfad zu einer Datei ist, sucht der Befehl nach der Datei in den Verzeichnissen, die in$PATH
angegeben sind Umgebungsvariable. Wenn die Datei nicht im$PATH
gefunden wird , sucht der Befehl nach der Datei im aktuellen Verzeichnis. - Falls
ARGUMENTS
angegeben sind, werden sie zu Positionsparametern fürFILENAME
. - Falls der
FILENAME
existiert, diesource
Befehlsendecode ist0
, andernfalls, wenn die Datei nicht gefunden wird, wird1
zurückgegeben .
Quellbefehlsbeispiele #
In diesem Abschnitt sehen wir uns einige grundlegende Beispiele für die Verwendung von source
an Befehl.
Beschaffungsfunktionen #
Wenn Sie Shell-Skripte haben, die dieselben Funktionen verwenden, können Sie sie in eine separate Datei extrahieren und diese Datei dann in Ihre Skripte einspeisen.
In diesem Beispiel erstellen wir eine Datei, die eine Bash-Funktion enthält, die überprüft, ob der Benutzer, der das Skript ausführt, der Root ist, und wenn nicht, zeigt es eine Meldung an und beendet das Skript.
functions.shcheck_root () {
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root"
exit 1
fi
}
Geben Sie jetzt in jedem Skript, das nur vom Root-Benutzer ausgeführt werden muss, einfach die Datei functions.sh
aus Datei und rufen Sie die Funktion auf:
#!/usr/bin/env bash
source functions.sh
check_root
echo "I am root"
Wenn Sie das obige Skript als Nicht-Root-Benutzer ausführen, wird es „Dieses Skript muss als Root ausgeführt werden“ ausgeben und beendet.
Der Vorteil dieses Ansatzes besteht darin, dass Ihre Skripte kleiner und besser lesbar sind, Sie dieselbe Funktionsdatei bei Bedarf wiederverwenden können und falls Sie eine Funktion ändern müssen, nur eine Datei bearbeiten müssen.
Bash-Konfigurationsdatei #
Mit der source
Befehl können Sie auch Variablen aus einer Datei lesen. Die Variablen müssen mit der Bash-Syntax gesetzt werden, VARIABLE=VALUE
.
Lassen Sie uns eine Testkonfigurationsdatei erstellen:
config.shVAR1="foo"
VAR2="bar"
Verwenden Sie in Ihrem Bash-Skript die source
Befehl zum Lesen der Konfigurationsdatei:
#!/usr/bin/env bash
source config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
Wenn Sie das Skript ausführen, sieht die Ausgabe so aus:
VAR1 is foo
VAR2 is bar
Schlussfolgerung #
In dieser Anleitung haben Sie gelernt, wie Sie source
verwenden eingebauter Befehl in Ihren Shell-Skripten.
Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.