Warum wird der folgende Befehl nicht beendet? Anstatt zu beenden, läuft die Schleife unbegrenzt.
Während ich dieses Verhalten mithilfe eines komplexeren Setups entdeckte, reduziert sich die einfachste Form des Befehls auf Folgendes.
Wird nicht beendet:
while /usr/bin/true ; do echo "ok" | cat ; done | exit 1
Es gibt oben keine Tippfehler. Jedes '|' ist eine Pfeife. Der 'Exit 1' steht für einen anderen Prozess, der ausgeführt und beendet wurde.
Ich erwarte, dass der "Ausgang 1" ein SIGPIPE in der while-Schleife verursacht (auf eine Pipe ohne Lesegerät schreiben) und dass die Schleife ausbricht. Die Schleife läuft jedoch weiter.
Warum stoppt der Befehl nicht?