Erstellen und Einbinden eines einfachen Skripts
In diesem Schritt werden wir eine einfache Skriptdatei erstellen und den source
-Befehl verwenden, um sie in unserer aktuellen Shell-Umgebung auszuführen. Dies hilft uns zu verstehen, wie sich source
von der normalen Skriptausführung unterscheidet.
Wenn Sie ein Skript normalerweise ausführen (mit ./script.sh
), erstellt die Shell einen neuen Subprozess, um das Skript auszuführen. Alle in diesem Skript definierten Variablen und Funktionen existieren nur innerhalb dieses Subprozesses und verschwinden, wenn das Skript beendet ist. Wenn Sie jedoch den source
-Befehl (oder seine Abkürzung .
) verwenden, werden die Befehle im Skript in Ihrer aktuellen Shell-Umgebung ausgeführt, sodass Variablen und Funktionen auch nach Abschluss des Skripts bestehen bleiben.
Lassen Sie uns ein einfaches Skript erstellen, um dieses Konzept zu veranschaulichen:
1. Navigieren Sie in das Projektverzeichnis
Stellen Sie zunächst sicher, dass Sie sich im richtigen Verzeichnis befinden:
cd ~/project
2. Erstellen Sie eine einfache Skriptdatei
Erstellen Sie eine neue Datei namens variables.sh
mit dem nano-Editor:
nano variables.sh
Fügen Sie der Datei den folgenden Inhalt hinzu:
#!/bin/bash
## This script sets an environment variable
export WEATHER="Sunny"
echo "The weather is now set to: $WEATHER"
Drücken Sie Ctrl+O
, um die Datei zu speichern, dann Enter
, um den Dateinamen zu bestätigen, und schließlich Ctrl+X
, um nano zu verlassen.
3. Machen Sie das Skript ausführbar
Bevor wir das Skript ausführen können, müssen wir es ausführbar machen:
chmod +x variables.sh
4. Führen Sie das Skript normal aus
Zunächst führen wir das Skript auf die herkömmliche Weise aus:
./variables.sh
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
The weather is now set to: Sunny
Prüfen Sie nun, ob die Variable WEATHER
in Ihrer aktuellen Shell existiert:
echo $WEATHER
Es wird wahrscheinlich keine Ausgabe oder eine leere Zeile angezeigt. Dies liegt daran, dass die Variable nur im Subprozess, der das Skript ausgeführt hat, festgelegt wurde, nicht in Ihrer aktuellen Shell.
5. Binden Sie das Skript ein
Nun verwenden wir den source
-Befehl, um das Skript auszuführen:
source variables.sh
Sie werden die gleiche Ausgabe sehen:
The weather is now set to: Sunny
Prüfen Sie erneut die Variable WEATHER
:
echo $WEATHER
Diesmal sollten Sie Folgendes sehen:
Sunny
Die Variable WEATHER
existiert jetzt in Ihrer aktuellen Shell, da Sie den source
-Befehl verwendet haben, um das Skript auszuführen.
6. Verwenden Sie die Abkürzung
Sie können auch die Punkt (.
) -Abkürzung für den source
-Befehl verwenden:
. variables.sh
Dies führt zum gleichen Ergebnis wie die Verwendung von source variables.sh
.