#! / bin / bash -e :: was ist "-e"? andere argumente?

7

Ich bin ein Shellskriptcodierer, der sich immer dazu entschließt, Shell als Toplevel für die Erstellung von Website-Apps zu verwenden, und habe mich auf meine Bash-Skripts verlassen, wenn ich möchte, dass ein Projekt FAST implementiert wird.

Wir alle wissen, dass wir immer verwenden #!/bin/bash als Faustregel für die erste Zeile des Skripts wie immer. Ich machte es mir zur Gewohnheit, das Skript mit abzuschließen exit 0 ... jedes Mal für jedes Skript, das mitgeliefert wird #!/bin/bash.

Erst kürzlich bin ich auf dieses Skript gestoßen und habe verwirrt und versucht herauszufinden, was genau das ist: #!/bin/bash -e. "Was zum Teufel - da ist auch -e ?! "war meine Reaktion. Eine Einsicht würde programmatisch gewürdigt. :)

Faron
quelle
Für das, was es wert ist, "verwenden wir alle" nicht "immer" /bin/bash. Sie sprechen eine Welt an, die eine ganze Reihe von Skriptinterpreten verwendet, von Python und Perl über die Almquist-Shell und die Korn-Shell bis zu /usr/bin/make -f.
JdeBP
Heh ... Ich stehe auf diesem hier, @JdeBP. :)
Faron

Antworten:

7

http://www.gnu.org/software/bash/manual/bashref.html#Invoking-Bash
http://www.gnu.org/software/bash/manual/bashref.html#The-Set-Builtin

-e

Sofort beenden, wenn eine Pipeline [...] einen Nicht-Null-Status zurückgibt.

Viele Details wurden entfernt, lesen Sie also dieses Handbuch.

Ein Beispiel:

#!/bin/bash
set -e   # same as putting -e in the shebang
( exit 42 )
echo "you won't see this:
glenn jackman
quelle
Erhielt mehr Einblick von diesem Link! Jetzt sah ich Möglichkeiten, den Rest meiner Skripte zu vereinfachen. Grin-ohr-zu-ohr Vielen Dank.
Faron