source ist ein praktischer eingebauter Shell-Befehl, der Argumente akzeptiert, Befehle in einem Skript parst und sie in der Shell-Umgebung ausführt. Der Inhalt der Datei wird von source gelesen und dann an den Tool Command Language (TCL)-Interpreter weitergegeben, der die Befehle ausführt.

Lassen Sie uns lernen, wie Sie source verwenden, um Befehle auszuführen und mit Shell-Umgebungen unter Linux zu arbeiten, zusammen mit einer kurzen Erklärung, wie es sich vom bash-Befehl unterscheidet.

Verwenden Sie die Quelle, um Befehle in einer Datei auszuführen

Um den Quellbefehl zu verwenden, müssen Sie zunächst eine Beispieldatei erstellen und diese mit einigen Shell-Befehlen füllen. Erstellen Sie zunächst eine neue Datei mit der Touch-Befehl. Öffnen Sie die Datei in einem Texteditor Ihrer Wahl und schreiben Sie ein paar grundlegende Shell-Befehle.

berührenprüfen.txt
viprüfen.txt

# Schreiben Sie die Befehle in die Textdatei:
Echo "Hallo!"
pwd
ls

# Geben Sie die Datei entweder mit der Quell- oder der Punktsyntax an
. prüfen.txt
QuelleText.txt

instagram viewer

Schreiben Sie die Textdatei aus und übergeben Sie sie als Argument an den Quellbefehl. Das System führt die Befehle in der Datei aus und gibt eine Ausgabe zurück.

Nachdem Sie nun die Grundlagen zur Verwendung von source kennen, versuchen wir, die Bash-Shell-Umgebung zu ändern. Bevor Sie fortfahren, müssen Sie jedoch ein grundlegendes Verständnis von haben Umgebungsvariablen unter Linux.

Verwenden Sie den Quellbefehl, um die Bash-Shell-Umgebung zu aktualisieren

Unter Linux werden Umgebungsvariablen geerbt, sind aber unveränderlich. Wenn Sie ein Bash-Shell-Skript ausführen, das eine Umgebungsvariable $TEST ändert, erzeugt das Skript ein neues, gegabelten Shell-Prozess, und die Änderung von $TEST findet darin anstelle der ursprünglichen Bash statt Umfeld.

Der untergeordnete Prozess kann die Umgebung des übergeordneten Prozesses nicht ändern. Es kann nur seine eigene Umgebung verändern. Lassen Sie uns dies anhand eines praktischen Beispiels verstehen:

export TEST="Deb"
vi Beispiel

# Geben Sie diese Befehle in die Datei ein
export TEST="Bett"
Echo $TEST

# Schreiben Sie die Datei aus, machen Sie sie ausführbar und führen Sie sie dann aus
chmod +x Beispiel
./Beispiel # dies wird "Bett" zurückgeben
Echo $TEST # dies wird "deb" zurückgeben

Hier kommt der Quellbefehl ins Spiel. Mit dem source-Befehl können Sie ein Skript in derselben Shell-Umgebung ausführen, die sonst gegabelt worden wäre. Wenn Sie also ein Skript beziehen, das Umgebungsvariablen ändert, nimmt es die Änderungen für die Bash-Shell-Umgebung vor.

Um es auszuprobieren, schreiben Sie die Befehle im Codefeld oben in eine neue Datei und verwenden Sie den Quellbefehl, anstatt ihn ausführbar zu machen.

# Erstellen Sie eine neue Datei und bearbeiten Sie sie
vi prüfen Datei
. test_file
Echo $TEST # Dies gibt "Bett" zurück

Wie Sie sehen können, konnten Sie mit dem Quellbefehl die Umgebungsvariablen des übergeordneten Prozesses aktualisieren. Dies ist der primäre Anwendungsfall des Quellbefehls, d. h. das Ändern der übergeordneten Umgebung.

Das sind alle Schritte, die Sie benötigen, um die Bash-Shell-Umgebung mit dem Quellbefehl zu aktualisieren.

Unterschied zwischen den Linux-Bash- und -Source-Befehlen

Der Unterschied zwischen Linux-Bash- und Source-Befehlen besteht darin, dass wenn Sie ein Skript mit dem Bash-Befehl ausführen, es Linux mitteilt Kernel, um einen neuen Bash-Prozess zu erstellen, um das Skript zu lesen und auszuführen, die Ausgabe in den ursprünglichen Shell-Prozess zu kopieren und anzuzeigen.

Aber der Quellbefehl ist eine Shell eingebaut der eine Datei innerhalb des aktuellen Shell-Prozesses liest und auswertet. Alle vom Skript vorgenommenen Änderungen bleiben also in der Bash-Shell erhalten.

Fehlerbehebung bei den Quellbefehlsfehlern

In manchen Linux-Systemen kann beim Versuch, den Quellbefehl zu verwenden, der Fehler „Quelle nicht gefunden“ auftreten. Sie können diesen Fehler auf zwei Arten beheben:

1. Ändern Sie die Schale

Einige Shells unterstützen den source-Befehl nicht. In diesem Fall müssen Sie Ihre Shell-Umgebung mit dem ändern chsh -s ($welcher Shellname) Befehl.

Starten Sie danach ein neues Terminal Ändern Sie Ihre Schale, und versuchen Sie es mit dem Quellbefehl. Wenn die neue Shell Sourcing unterstützt, sollte sie einwandfrei funktionieren.

2. Verwenden Sie die Punkt/Punkt-Syntax

Einige Shell-Umgebungen unterstützen nicht "Quelle"Syntax aber die Alternative"." Syntax. Die „source“-Syntax ist ein Synonym für Punkt in Bash. Dies funktioniert jedoch nicht in der POSIX-Shell. Verwenden Sie daher für maximale Kompatibilität die Punktsyntax.

Grundlegende Linux-Befehle, die Sie kennen sollten

Linux-Shell-Befehle sind eine großartige Möglichkeit, über das Terminal mit dem System zu interagieren. Sie sind die Essenz der Verwendung von *NIX-Systemen.

Sie müssen zwar nicht alle Befehle kennen, aber wenn Sie sich mit ein paar nützlichen vertraut machen, wird es sich sicherlich als fruchtbar erweisen, wenn Sie sich tief in die Welt von Linux wagen.