Einführung
In Linux-Systemen source
ist ein eingebauter Shell-Befehl, der den Dateiinhalt in der aktuellen Shell liest und ausführt. Diese Dateien enthalten normalerweise eine Liste von Befehlen, die zum Lesen und Ausführen an den TCL-Interpreter gesendet werden.
Dieses Tutorial erklärt, wie der Quellbefehl funktioniert und wann er verwendet wird.
Voraussetzungen
- Ein System, auf dem eine Linux-Distribution ausgeführt wird (erfahren Sie, wie Sie Ubuntu 20.04 installieren, wie Sie CentOS 7 installieren oder wie Sie Arch Linux installieren)
- Ein Konto mit sudo-Berechtigungen
- Zugriff auf das Terminalfenster/die Befehlszeile
Quellbefehlssyntax
Die Quelle Befehl verwendet die folgende Syntax:
source [filename] [arguments]
Wo:
[filename]
:Der Name oder Pfad zu der Datei, die der Quellbefehl ausführen soll.[arguments]
:Alle Argumente, die Sie angeben, werden zu Positionsparametern, wenn die Datei ausgeführt wird.
Der Punkt (Punkt) kann anstelle von source
verwendet werden Befehl, was zur gleichen Ausgabe führt:
. [filename] [arguments]
Beispiele für Linux-Quellbefehle
Hier sind einige Möglichkeiten, wie Sie die source
verwenden können Befehl:
Argumente übergeben
Erstellen Sie eine Textdatei namens example.txt auf der Startseite Verzeichnis mit folgendem Inhalt:
pwd
date
time
Verwenden Sie die source
Befehl, um den Inhalt dieser Datei als Argument zu übergeben:
source example.txt
Die Ausgabe zeigt, dass die source
Befehl bewegt sich Zeile für Zeile und führt alle Befehle aus, die in example.txt aufgelistet sind .
Ändern Sie für ein komplexeres Beispiel den Inhalt von example.txt zu:
echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
Verschieben Sie die Datei nach Home/source_command/example . Mit der source
übergeben Sie den Inhalt der Datei als Argument unter Verwendung des vollständigen Pfads zur Datei:
source source_command/example/example.txt
Lesen Sie die Konfigurationsdatei
Die source
Mit dem Befehl können Sie auch Variablen aus einer Datei lesen. Erstellen Sie zunächst eine Beispielkonfigurationsdatei example_config.sh auf der Startseite Verzeichnis und Hinzufügen des folgenden Inhalts:
VAR1="a"
VAR2="b"
VAR3="c"
Erstellen Sie ein Bash-Skript namens example_bash.sh und fügen Sie Folgendes hinzu:
#!/usr/bin/env bash
source example_config.sh
echo "VAR1 is $VAR1"
echo "VAR2 is $VAR2"
echo "VAR3 is $VAR3"
Die source
Befehl erlaubt example_bash.sh um die Variablen VAR1
zu lesen , VAR2
, und VAR3
die Sie in example_config.sh definiert haben .
Führen Sie example_bash.sh aus Skript mit der source
Befehl:
source example_bash.sh
Quellfunktionen
Wenn Sie Funktionen haben, die Sie in mehreren verschiedenen Skripten verwenden, können Sie diese als separate Dateien speichern und die source
verwenden Befehl, sich beim Schreiben von Skripten darauf zu beziehen.
Beginnen Sie beispielsweise damit, eine Funktion check_root.sh zu erstellen das überprüft, ob der Benutzer, der das Skript ausführt, ein Root-Benutzer ist:
check_root() {
if [[ $EUID -ne 0 ]]; then
echo "You must run this script as root"
exit 1
fi
}
Erstellen Sie ein Skript namens example_script.sh und verwenden Sie die source
Befehl zum Einfügen der check_root.sh Funktion:
#!/usr/bin/env bash
source check_root.sh
check_root
echo "This is the root user"
Wenn Sie dieses Skript als Nicht-Root-Benutzer ausführen, wird "You must run this script as root"
ausgegeben als Ausgabe und beendet das Skript:
bash example_script.sh
Wenn Sie das Skript als Root-Benutzer ausführen, wird "This is the root user"
angezeigt als Ausgabe:
sudo bash example_script.sh
Aktuelle Shell-Umgebung aktualisieren
Für dieses Beispiel erstellen wir einen Alias-Befehl ll
:
alias ll = 'ls -l'
Dieser Befehl listet die Dateien im aktuellen Verzeichnis im erweiterten Format auf:
Dieser Befehl funktioniert jedoch nur in der aktuellen Shell-Sitzung. Um es dauerhaft zu machen, öffnen Sie die bashrc Datei mit:
sudo nano ~/.bashrc
Unter #some more ls aliases
Abschnitt, fügen Sie Folgendes hinzu:
alias ll = 'ls -l'
Aktualisieren Sie die aktuelle Shell-Umgebung mit source
Befehl:
source ~/.bashrc