Was bewirkt die Übergabe der -xe-Parameter an / bin / bash?

59

Genau das, was der Titel sagt. Ich habe nicht viel Glück, die richtige Dokumentation zu finden, um zu sehen, was -xe im folgenden Anwendungsfall tut:

#!/bin/bash -xe

Was machen diese Parameter und wo ist sie dokumentiert?

einfallsreich
quelle
Handelt es sich um Parameter, die an die BASH-Binärdatei übergeben werden, oder um Funktionen und Parameter in der BASH-Skriptsprache?
Richard Keller
Unter Bezugnahme auf die Parameter, die an die BASH-Binärdatei übergeben werden, z. B .: #! / Bin / bash -xe
einfallsreich

Antworten:

56

Wenn Sie die Manpage lesen, bashfinden Sie oben im OPTIONSAbschnitt Folgendes :

 Alle in der
 Die Beschreibung des Befehls set builtin kann als Option verwendet werden, wenn der Befehl
 Shell wird aufgerufen. Darüber hinaus interpretiert bash die folgenden Optionen
 wenn es aufgerufen wird ...

Und wenn Sie die Dokumentation für den setBefehl später auf der Manpage lesen , finden Sie:

 -e Beendet sofort, wenn eine Pipeline (die aus a
 single simple command), ein in Klammern eingeschlossener Subshell-Befehl,
 oder einer der Befehle, die als Teil einer von eingeschlossenen Befehlsliste ausgeführt werden
 Klammern (siehe SHELL GRAMMAR oben) werden mit einem Status ungleich Null beendet. 

 -x Nach dem Erweitern jedes einfachen Befehls wird für den Befehl case angegeben
 Befehl, Befehl auswählen oder Arithmetik für Befehl anzeigen
 der erweiterte Wert von PS4, gefolgt von dem Befehl und seinem
 erweiterte Argumente oder zugehörige Wortliste.

Mit anderen Worten, -edie Shell wird sofort beendet, wenn etwas einen Fehler zurückgibt (dies wird in Shell-Skripten häufig als ausfallsicherer Mechanismus verwendet), und -xdie ausführliche Ausführung von Skripten wird aktiviert, damit Sie sehen können, was passiert.

larsks
quelle
10

Geben Sie Folgendes in Ihre Konsole ein, um eine Erklärung der BASH-Argumente zu erhalten:

bash -c "help set"

Zur Beantwortung Ihrer Frage:

-e Beenden Sie sofort, wenn ein Befehl mit einem Status ungleich Null beendet wird.

-x Druckbefehle und ihre Argumente, wenn sie ausgeführt werden.

Richard Keller
quelle
4

Aus der Manpage :

Alle in der Beschreibung des Befehls set builtin dokumentierten Einzelzeichen-Shell-Optionen können beim Aufrufen der Shell als Optionen verwendet werden.

Schauen Sie sich also das eingebaute Set an .

mgorven
quelle
2

Denken Sie an das Zeug, in dem Sie set -x set -e set -... tun? Laufen help setgibt denen.

am weisesten werden
quelle
1
Ich denke an Parameter wie die folgenden: #! / Bin / bash -xe
einfallsreich
0

Wo finden Sie die Dokumentation zu den Parametern, die an die Bash übergeben werden, z. B. -x und -e? Ich habe versucht, den Mann 1 zu schlagen, aber es scheint dort nicht abgedeckt zu sein.

Lesen Sie den Abschnitt OPTIONEN in der basj-Manpage.

fpmurphy
quelle
0

Ich verwende ein exzellentes Bash-Referenzhandbuch als One-Stop-Dokumentation für die Bash-Sprache. Ich fand es nützlicher als Manpages. Den für Sie relevanten Abschnitt (Beschreibung der Schalter -e, -x finden Sie hier: set builtin

mzet
quelle