GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash-Quellbefehl

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ür FILENAME .
  • Falls der FILENAME existiert, die source Befehlsendecode ist 0 , andernfalls, wenn die Datei nicht gefunden wird, wird 1 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.sh
check_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.sh
VAR1="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.


Linux
  1. Bash-Trap-Befehl erklärt

  2. Bash-Wartebefehl

  3. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

  4. Bash-Exportbefehl

  5. conda source deactivate :bash:deactivate:Keine solche Datei oder Verzeichnis

Gzip-Befehl unter Linux

Gunzip-Befehl unter Linux

Stat-Befehl unter Linux

Verlaufsbefehl in Linux (Bash-Verlauf)

Bash-printf-Befehl

Bash-Scripting(III)