Ich habe ein Skript gefunden und versuche, es zum Laufen zu bringen. Es lädt nur Apache-Laufzeitbibliotheken herunter und installiert sie. Die erste Zeile ist set -e
und verursacht einen Fehler. Was bedeutet set -e
tun?
Dieser Einbau ist so kompliziert, dass er einen eigenen Abschnitt verdient.
Mit set können Sie die Werte von Shell-Optionen ändern und die Positionsparameter festlegen oder die Namen und Werte von Shell-Variablen anzeigen.
Die -e
Option
-e
Beenden Sie sofort, wenn eine Pipeline (siehe Pipelines), die aus einem einzelnen einfachen Befehl (siehe Einfache Befehle), einem in Klammern gesetzten Subshell-Befehl (siehe Befehlsgruppierung) oder einem der Befehle besteht, die als Teil einer Befehlsliste von ausgeführt werden geschweifte Klammern (siehe Befehlsgruppierung) geben einen Status ungleich Null zurück. Die Shell wird nicht beendet, wenn der fehlgeschlagene Befehl Teil der Befehlsliste ist, die unmittelbar auf ein while- oder until-Schlüsselwort folgt, Teil des Tests in einer if-Anweisung ist, Teil eines Befehls, der in einem && oder || ausgeführt wird liste mit Ausnahme des Befehls, der auf das letzte && oder || folgt, jeden Befehl in einer Pipeline außer dem letzten, oder wenn der Rückgabestatus des Befehls mit! invertiert wird. Ein Trap auf ERR, falls gesetzt, wird ausgeführt, bevor die Shell beendet wird.
Diese Option gilt für die Shell-Umgebung und jede Subshell-Umgebung separat (siehe Command Execution Environment) und kann dazu führen, dass Subshells beendet werden, bevor alle Befehle in der Subshell ausgeführt werden.
Quelle: www.gnu.org
Bearbeitet aufgrund des Kommentars von @psusi unten.
Zusätzlich können Sie die Handbuchseite der Bash lesen
man bash
im Abschnitt: SHELL BUILTIN COMMANDS
oder Problem
help set
für eine kurze Hilfemeldung.
help set
und das vollständige Bash-Handbuch istinfo bash
, wenn Sie Bash-Doc installiert haben.help set
und / oderman bash
sind die richtigen fürset
.set -e
Kurz gesagt, wenn es oben in Ihrem Bash-Skript steht, wird das Skript angewiesen, zu beenden, sobald eine Zeile im Skript fehlschlägt (mit einigen im Handbuch aufgeführten Ausnahmen). [1]Als Debugging-Option wird sie häufig verwendet
set -x
, um jede erweiterte Befehlszeile vor der Ausführung mit einem "+" - Zeichen zu drucken. [2]Weitere Informationen finden Sie unter:
[1] https://www.peterbe.com/plog/set-ex
[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
quelle