Dieses Skript gibt kein "after" zurück:
#!/bin/bash -e
echo "before"
echo "anything" | grep e # it would if I searched for 'y' instead
echo "after"
exit
Es würde auch funktionieren, wenn ich die -e
Option in der Shebang-Zeile entferne , aber ich möchte sie behalten, damit mein Skript bei einem Fehler stoppt. Ich betrachte grep, das keine Übereinstimmung gefunden wird, nicht als Fehler. Wie kann ich verhindern, dass es so plötzlich beendet wird?
var=$(complex command | grep complex_pattern)
null ist (in diesem Fall sollte mein Programm nicht beendet werden). Dies ist nur ein abgekochtes Skript, das das Problem verursacht. Kein metaphysisches Schwarzes Loch in der Logik, oder? ;)
-e
Sie sich darum kümmern, dass jedes Problem katastrophal ist.