SET -O PIPEFAIL führt ein Shell -Skript zurück, um den Exit -Status des zuletzt fehlgeschlagenen Befehls in einer Pipeline zurückzugeben, um sicherzustellen, dass Fehler nicht versteckt sind. 1. Standardm??ig meldet Bash nur den Exit -Code des letzten Befehls in einer Pipeline, auch wenn frühere Befehle fehlschlagen. 2. Mit aktiviertem SET -O -PIPEFAIL gibt die Shell stattdessen den Exit -Code des ersten fehlgeschlagenen Befehls zurück oder 0, wenn alle erfolgreich sind. 3. Dies hilft, stille Fehler in Automatisierungsskripten zu erfassen, insbesondere in Kombination mit SET -E, um die Ausführung bei jedem Fehler zu stoppen. 4. Es funktioniert in Bash und ZSH, aber standardm??ig nicht in SH oder Dash, sodass die Portabilit?t berücksichtigt werden sollte. 5. Es kann in einem Skript vorübergehend deaktiviert werden, wenn bestimmte Pipeline -Fehler erwartet werden und ignoriert werden sollten.
Wenn Sie mit Shell -Skripten arbeiten, insbesondere in Umgebungen, in denen die Zuverl?ssigkeits- und Fehlerbehandlung Materie ist, wird set -o pipefail
zu einem nützlichen Werkzeug. Ohne sie k?nnen Pipelines Fehler verbergen - dh, wenn ein Teil einer Kette fehlschl?gt, aber der letzte Befehl erfolgreich ist, sieht die gesamte Pipeline so aus, als h?tte sie funktioniert. Das ist oft nicht das, was Sie wollen.
Was macht set -o pipefail
eigentlich?
Standardm??ig meldet Bash den Exit -Status des letzten Befehls in einer Pipeline. Selbst wenn ein früherer Befehl in der Pipeline fehlschl?gt, wird das Gesamtergebnis der Pipeline als Erfolg angesehen.
Zum Beispiel:
Grep "Fehler"/var/log/syslog | sortieren | Uniq
Wenn grep
fehlschl?gt (z. B. weil /var/log/syslog
nicht existiert), aber sort
und uniq
gut laufen, gibt die gesamte Pipeline einen Exit -Code von 0 zurück - was den Erfolg angibt. Das kann irreführend sein.
Aktivieren von set -o pipefail
?ndert dieses Verhalten: Die Shell gibt stattdessen den Exit -Status des letzten Befehls zurück, der fehlgeschlagen ist , oder 0, wenn alle Befehle erfolgreich waren.
Dies erleichtert es, echte Fehler in Ihren Skripten zu fangen.
Warum sollten Sie sich in Skripten darum kümmern
In Automatisierungs- und Bereitstellungsskripten sind stille Fehler gef?hrlich. Sie k?nnten denken, alles lief reibungslos, aber in Wirklichkeit scheiterte ein kritischer Schritt leise.
Durch die Verwendung von set -o pipefail
wird sichergestellt, dass ein Fehler in einer Pipeline bemerkt wird. In Kombination mit set -e
(das auf einen beliebigen Fehler ausgeht) wird es zu einer soliden M?glichkeit, strenge Fehlerprüfung durchzusetzen.
Ein praktisches Szenario:
set -eo pipefail curl -s http://example.com/data | JQ '.Importantfield'
- Wenn
curl
fehlschl?gt (z. B. ein Netzwerkproblem), stoppt das Skript sofort. - Wenn
jq
fehlschl?gt (z. B. ungültiges JSON), stoppt das Skript ebenfalls.
Ohne pipefail
k?nnte ein Fehler in curl
maskiert werden, und das Skript würde weitergehen - m?glicherweise zu verwirrenden Ergebnissen oder falschen Datenverarbeitung.
Wie man es effektiv benutzt
Um dies zu aktivieren, fügen Sie diese Zeile einfach oben in Ihrem Bash -Skript hinzu:
SET -O PIPEFAIL
Oder verwenden Sie die kürzere Version:
SET -O PIPEFAIL
Einige Tipps, um es gut zu verwenden:
- Kombinieren Sie es immer mit
set -e
oder überprüfen Sie die Ausgangscodes manuell. - Beachten Sie, dass nicht alle Shells es unterstützen - es funktioniert in Bash und ZSH, aber standardm??ig nicht in einfacher SH oder DASH.
- Wenn Sie tragbare Skripte schreiben, testen Sie, wie Ihre Zielumgebung damit umgeht.
Sie k?nnen es bei Bedarf auch in einem Skript vorübergehend deaktivieren:
Setzen Sie o Pipefail # deaktiviert es # Führen Sie hier eine spezielle Pipeline aus set -o pipefail # wieder aufzusetzen
Dies kann helfen, mit Befehlen zu tun, bei denen ein Fehler in der Mitte einer Pipeline erwartet wird und ignoriert werden sollte.
Im Grunde genommen ist das set -o pipefail
-das fangen echte Fehler in Pipelines, damit Ihre Skripte sie nicht verpassen. Es ist eine kleine Flagge, aber es macht einen gro?en Unterschied, um Shell -Skripte robuster zu machen.
Das obige ist der detaillierte Inhalt vonWas ist der Zweck von Set -o Pipefail?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Open Shell, das unter Windows 11 nicht l?uft, ist kein neues Problem und plagt Benutzer seit der Einführung dieses neuen Betriebssystems. Die Ursache für das Problem, dass Open-Shell Windows 11 nicht funktioniert, ist nicht spezifisch. Dies kann durch unerwartete Fehler in Programmen, das Vorhandensein von Viren oder Malware oder besch?digte Systemdateien verursacht werden. Für diejenigen, die es nicht wissen: Open-Shell ist der Ersatz für Classic Shell, das 2017 eingestellt wurde. Sie k?nnen sich unser Tutorial zur Installation von Classic Shell unter Windows 11 ansehen. So ersetzen Sie das Startmenü von Windows 11

<p>Die Anpassung Ihres Betriebssystems ist eine gro?artige M?glichkeit, Ihren Alltag angenehmer zu gestalten. Sie k?nnen die Benutzeroberfl?che ?ndern, benutzerdefinierte Designs anwenden, Widgets hinzufügen und mehr. Deshalb zeigen wir Ihnen heute, wie Sie ClassicShell unter Windows 11 installieren. </p><p>Dieses Programm gibt es schon seit langer Zeit und erm?glicht es Ihnen, das Betriebssystem zu ?ndern. Mittlerweile haben Freiwillige die Leitung der Organisation übernommen, die sich 2017 aufl?ste. Das neue Projekt hei?t OpenShell und ist derzeit für Interessierte auf Github verfügbar. </p>&a

Wird beim Ausführen des Skripts in PowerShell die Fehlermeldung ?Add-AppxPackage: Bereitstellung fehlgeschlagen mit HRESULT: 0x80073D02, Das Paket kann nicht installiert werden, da die von ihm ge?nderte Ressource derzeit verwendet wird. Fehler 0x80073D02...“ angezeigt? Wie in der Fehlermeldung angegeben, tritt dies auf, wenn der Benutzer versucht, eine oder alle WindowsShellExperienceHost-Anwendungen erneut zu registrieren, w?hrend der vorherige Prozess ausgeführt wird. Wir haben einige einfache L?sungen, um dieses Problem schnell zu beheben. Fix 1 – Beenden Sie den Experience-Host-Prozess, den Sie beenden müssen, bevor Sie den Powershell-Befehl ausführen

Windows-Subsystem für Linux Die erste Option ist die Verwendung des Windows-Subsystems für Linux oder WSL, einer Kompatibilit?tsschicht für die native Ausführung bin?rer ausführbarer Linux-Dateien auf Windows-Systemen. Es funktioniert für die meisten Szenarien und erm?glicht Ihnen die Ausführung von Shell-Skripten in Windows 11/10. WSL ist nicht automatisch verfügbar, daher müssen Sie es über die Entwicklereinstellungen Ihres Windows-Ger?ts aktivieren. Sie k?nnen dies tun, indem Sie zu Einstellungen > Update & Sicherheit > Für Entwickler gehen. Wechseln Sie in den Entwicklermodus und best?tigen Sie die Abfrage mit Ja. Suchen Sie als n?chstes nach W

OpenShell ist ein kostenloses Software-Dienstprogramm, mit dem Sie das Startmenü von Windows 11 so anpassen k?nnen, dass es einem Menü im klassischen Stil oder einem Menü im Windows 7-Stil ?hnelt. Das Startmenü früherer Windows-Versionen bot Benutzern eine einfache M?glichkeit, den Inhalt ihres Systems zu durchsuchen. Im Grunde ist OpenShell ein Ersatz für ClassicShell, der verschiedene Benutzeroberfl?chenelemente bereitstellt, die dabei helfen, die Funktionalit?t der letzteren Version aus früheren Windows-Versionen zu übernehmen. Nachdem die Entwicklung von ClassicShell im Jahr 2017 eingestellt wurde, wurde es von GitHub-Freiwilligen unter dem Namen OpenShell gepflegt und weiterentwickelt. Es h?ngt mit Win zusammen
![Explorer.exe startet beim Systemstart nicht [Fix]](https://img.php.cn/upload/article/000/887/227/168575230155539.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Heutzutage sto?en viele Windows-Benutzer auf schwerwiegende Windows-Systemprobleme. Das Problem besteht darin, dass Explorer.exe nach dem Laden des Systems nicht gestartet werden kann und Benutzer keine Dateien oder Ordner ?ffnen k?nnen. Allerdings k?nnen Windows-Benutzer in einigen F?llen den Windows Explorer manuell über die Eingabeaufforderung ?ffnen und müssen dies bei jedem Systemneustart oder nach dem Systemstart tun. Dies kann problematisch sein und ist auf die folgenden Faktoren zurückzuführen. Besch?digte Systemdateien. Aktivieren Sie die Schnellstarteinstellungen. Veraltete oder problematische Anzeigetreiber. An einigen Diensten im System wurden ?nderungen vorgenommen. Ge?nderte Registrierungsdatei. Unter Berücksichtigung aller oben genannten Faktoren haben wir einige gefunden, die den Benutzern sicherlich helfen werden

Einige Beispiele für Python-Skripte: Unternehmens-WeChat-Alarme, FTP-Clients, SSH-Clients, Saltstack-Clients, vCenter-Clients, Abrufen der Ablaufzeit des SSL-Zertifikats für Dom?nennamen, Senden der heutigen Wettervorhersage und zukünftiger Wettertrenddiagramme: SVN-Vollsicherung; Zabbix überwacht den Ablauf des Benutzerkennworts, erstellt lokales YUM und die Anforderungen der Leser im vorherigen Artikel (wenn die Auslastung hoch ist, finden Sie heraus, welche Prozessskripte eine relativ hohe Auslastung belegen und Benachrichtigungen speichern oder pushen). Bitte haben Sie etwas Geduld. Am Ende des Artikels gibt es doch noch ein Easter Egg. Python-Skript ist Teil des WeChat-Alarms für Unternehmen. Dieses Skript verwendet die WeChat-Anwendung des Unternehmens, um einen WeChat-Alarm durchzuführen, und kann verwendet werden

Bei der Verarbeitung von Dateien unter Linux-Systemen ist es manchmal erforderlich, Zeilen am Ende der Datei zu l?schen. Dieser Vorgang kommt in praktischen Anwendungen sehr h?ufig vor und kann durch einige einfache Befehle erreicht werden. In diesem Artikel werden die Schritte zum schnellen L?schen der Zeile am Ende der Datei im Linux-System vorgestellt und spezifische Codebeispiele bereitgestellt. Schritt 1: überprüfen Sie die letzte Zeile der Datei. Bevor Sie den L?schvorgang durchführen, müssen Sie zun?chst best?tigen, welche Zeile die letzte Zeile der Datei ist. Sie k?nnen den Befehl tail verwenden, um die letzte Zeile der Datei anzuzeigen. Der spezifische Befehl lautet wie folgt: tail-n1filena
