Betrachten Sie den folgenden Code
Outer-scope.sh
#!/bin/bash
set -e
source inner-scope.sh
echo $(inner)
echo "I thought I would've died :("
inner-scope.sh
#!/bin/bash
function inner() { echo "winner"; return 1; }
Ich versuche zu beenden outer-scope.sh
, wenn ein Anruf inner()
fehlschlägt. Da $()
eine Sub-Shell aufgerufen wird, geschieht dies nicht.
Wie kann ich die Ausgabe einer Funktion erhalten, ohne die Tatsache zu vernachlässigen, dass die Funktion mit einem Exit-Code ungleich Null beendet wird?