Betrachten Sie dieses Snippet:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Normalerweise func
führt der Aufruf dazu, dass das Skript beendet wird. Dies ist das beabsichtigte Verhalten. Wenn es jedoch in einer Sub-Shell wie in ausgeführt wird
result=`func`
Das Skript wird nicht beendet. Dies bedeutet, dass der aufrufende Code jedes Mal den Beendigungsstatus der Funktion überprüfen muss. Gibt es eine Möglichkeit, dies zu vermeiden? Ist das, was set -e
ist für?
func
.