So führen Sie ein Shell-Skript über ein Bash-Skript aus
Das Ausführen eines Shell-Skripts in Bash ist eine der grundlegendsten und nützlichsten Fähigkeiten für jeden, der mit Linux-Systemen arbeitet. Mit Shell-Skripten können Sie sich wiederholende Aufgaben automatisieren, Systemkonfigurationen verwalten und komplexe Arbeitsabläufe in wenigen Codezeilen erstellen. Ganz gleich, ob Sie Anfänger oder erfahrener Benutzer sind: Wenn Sie dies beherrschen, sparen Sie Zeit und Mühe. In diesem Artikel gehen wir jeden Schritt durch, um ein Shell-Skript in Bash erfolgreich auszuführen, und geben detaillierte Anweisungen, um Ihr Verständnis sicherzustellen.
In diesem Tutorial lernen Sie:
- So erstellen Sie ein Shell-Skript in Bash
- So führen Sie ein Shell-Skript aus
- So verwalten Sie Berechtigungen zum Ausführen eines Skripts
- So führen Sie ein Skript von einem anderen in Bash aus
Schritte zum Ausführen eines Shell-Skripts in Bash
Um ein Shell-Skript in Bash auszuführen, müssen Sie das Skript erstellen, ausführbare Berechtigungen zuweisen und das Skript schließlich in Ihrem Terminal ausführen. Gehen wir Schritt für Schritt vor.
Erstellen Sie ein Shell-Skript:
Der erste Schritt beim Ausführen eines Shell-Skripts in Bash besteht darin, die eigentliche Bash-Skriptdatei zu erstellen. Ein Shell-Skript ist im Wesentlichen eine reine Textdatei, die eine Reihe von Befehlen enthält, die nacheinander ausgeführt werden. Sie können diese Datei mit einem Texteditor wienano
odervim
erstellen.$ nano myscript.sh
Nach dem Öffnen des Texteditors können Sie Ihre gewünschten Befehle in das Skript schreiben. Zum Beispiel:
#!/bin/bash echo "Hello, World!"
Die Zeile
#!/bin/bash
oben in der Datei teilt dem Betriebssystem mit, dass dieses Skript mit der Bash-Shell ausgeführt werden soll. Der Befehlecho
gibt Text auf dem Bildschirm aus.Machen Sie das Skript ausführbar:
Bevor Sie das Skript ausführen können, müssen Sie es ausführbar machen. Dadurch wird sichergestellt, dass das System es als ausführbares Programm erkennt. Verwenden Sie den Befehlchmod
, um die Berechtigungen des Skripts zu ändern.$ chmod +x myscript.sh
Führen Sie das Shell-Skript aus:
Nachdem Sie das Skript ausführbar gemacht haben, können Sie es nun ausführen. Navigieren Sie dazu zu dem Verzeichnis, in dem sich Ihr Skript befindet, und führen Sie es aus, indem Sie Folgendes eingeben:$ ./myscript.sh
Führen Sie ein Skript aus einem anderen Skript in Bash aus:
Manchmal müssen Sie möglicherweise ein Skript innerhalb eines anderen Skripts in Bash ausführen. Dies kann je nach Ihren Anforderungen entweder durch die Angabe des vollständigen Pfads oder durch die Verwendung eines relativen Pfads erfolgen.Verwenden eines relativen Pfads: Ein relativer Pfad bezieht sich auf den Speicherort des Skripts im Verhältnis zum aktuellen Arbeitsverzeichnis (dem Verzeichnis, von dem aus Sie das Skript ausführen). So können Sie ein anderes Skript mit einem relativen Pfad ausführen:
#!/bin/bash ./myscript.sh echo "Main script executed!"
In diesem Beispiel bezieht sich
./myscript.sh
auf ein Skript, das sich im selben Verzeichnis wie das Hauptskript befindet. Der./
bezeichnet das aktuelle Verzeichnis, sodass Bash weiß, dass es im selben Ordner nachmyscript.sh
suchen muss.Verwendung eines vollständigen Pfads: Ein vollständiger oder absoluter Pfad gibt den genauen Speicherort des Skripts an, beginnend mit dem Stammverzeichnis. Diese Methode ist nützlich, wenn sich das Skript, das Sie ausführen möchten, in einem anderen Verzeichnis befindet oder wenn Sie sicherstellen möchten, dass das Skript unabhängig von Ihrem aktuellen Verzeichnis ausgeführt wird.
#!/bin/bash /home/user/scripts/myscript.sh echo "Main script executed!"
- Relativer Pfad: Flexibel, aber abhängig davon, von wo aus das Hauptskript ausgeführt wird. Es funktioniert nur, wenn sich die beiden Skripte im selben Verzeichnis oder an einem vorhersehbaren relativen Speicherort befinden.
- Vollständiger Pfad: Stellt sicher, dass immer das richtige Skript ausgeführt wird, unabhängig davon, von wo aus das Hauptskript ausgeführt wird. Dies ist ideal, wenn die Skripte in verschiedenen Verzeichnissen gespeichert sind oder Sie mehr Kontrolle über die Ausführung wünschen.
- Führen Sie ein Skript mit dem Bash-Befehl aus:
Alternativ können Sie ein Shell-Skript mit dem Befehlbash
ausführen, ohne es ausführbar zu machen. Dies ist nützlich, wenn Sie die Dateiberechtigungen nicht ändern möchten.$ bash myscript.sh
Dieser Befehl führt das Skript direkt mit dem Bash-Interpreter aus, ohne dass ausführbare Berechtigungen erforderlich sind.
Wenn Sie mit dem Schreiben des Skripts fertig sind, speichern Sie es und beenden Sie den Texteditor. Wenn Sie nano verwenden, drücken Sie STRG+X
, dann Y
, um das Speichern zu bestätigen, und drücken Sie Enter
, um den Vorgang zu beenden.
Dieser Befehl gewährt dem Skript Ausführungsberechtigungen, sodass es vom System ausgeführt werden kann.
Der ./
weist das Terminal an, im aktuellen Verzeichnis nach dem Skript zu suchen. Das Skript wird ausgeführt und Sie sollten die Ausgabe Hello, World!
auf Ihrem Terminal sehen.
In diesem Fall bezieht sich /home/user/scripts/myscript.sh
auf den genauen Speicherort des Skripts. Unabhängig davon, wo sich das Hauptskript befindet, führt es immer die Datei another_script.sh
aus, die sich in /home/user/scripts/
befindet.
Unterschied zwischen relativem und vollständigem Pfad:
Durch Auswahl der geeigneten Methode können Sie die Skriptausführung problemlos über verschiedene Verzeichnisse oder Umgebungen hinweg verwalten.
Schlussfolgerung
Wenn Sie diese Schritte befolgen, können Sie ganz einfach Shell-Skripte in Bash erstellen, ausführen und verwalten. Unabhängig davon, ob Sie Aufgaben automatisieren, Dateien verwalten oder Skripts aus anderen Skripts ausführen, wird die Beherrschung dieser Fähigkeit Ihre Produktivität und Effizienz auf einem Linux-System erheblich steigern. Das Verständnis, wie man ein Shell-Skript in Bash ausführt, eröffnet endlose Möglichkeiten für die Automatisierung und Systemverwaltung.
FAQ:
1. Wie mache ich ein Shell-Skript ausführbar?
Um ein Shell-Skript ausführbar zu machen, verwenden Sie den folgenden Befehl:
$ chmod +x script_name.sh
Dadurch werden Ausführungsberechtigungen erteilt, sodass das Skript ausgeführt werden kann.
2. Was ist der häufigste Fehler: „Berechtigung verweigert“ beim Ausführen eines Skripts?
Dieser Fehler tritt auf, wenn das Skript keine Ausführungsberechtigungen hat. Verwenden Sie den Befehl chmod +x
, um das Skript ausführbar zu machen:
$ chmod +x script_name.sh
3. Wie führe ich ein Skript in Bash aus, ohne es ausführbar zu machen?
Sie können das Skript direkt mit dem Bash-Befehl ausführen:
$ bash script_name.sh
4. Was bedeutet „Keine solche Datei oder kein solches Verzeichnis“?
Dieser Fehler bedeutet normalerweise, dass das Skript im angegebenen Pfad nicht gefunden werden kann. Stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden, oder verwenden Sie den vollständigen Pfad zum Skript:
$ ./script_name.sh
für relative Pfade, oder verwenden Sie den vollständigen Pfad wie:
$ /home/user/script_name.sh
5. Wie kann ich ein Skript von einem anderen Skript in Bash ausführen?
Sie können ein anderes Skript ausführen, indem Sie es innerhalb des Hauptskripts unter Verwendung eines relativen oder vollständigen Pfads aufrufen:
./another_script.sh
(relativ) oder
/home/user/another_script.sh
(vollständiger Pfad).
6. Was bedeutet „Befehl nicht gefunden“ beim Ausführen eines Skripts?
Dieser Fehler weist darauf hin, dass Bash das Skript in Ihrem aktuellen Verzeichnis nicht finden kann. Stellen Sie sicher, dass Sie ./
vor dem Skriptnamen angeben, wenn sich das Skript in Ihrem aktuellen Verzeichnis befindet:
$ ./script_name.sh
7. Kann ich ein Skript als Root-Benutzer ausführen?
Ja, Sie können ein Skript mit Root-Rechten ausführen, indem Sie sudo
verwenden:
$ sudo ./script_name.sh
Dies ist erforderlich, wenn das Skript Systemdateien ändern oder Verwaltungsaufgaben ausführen muss.
8. Wie debugge ich ein Bash-Skript?
Um ein Bash-Skript zu debuggen, können Sie es mit der Option -x
ausführen:
$ bash -x script_name.sh
Dadurch wird jeder Befehl gedruckt, bevor er ausgeführt wird, sodass Sie Fehler oder unerwartetes Verhalten leichter nachverfolgen können.