Warum den Code 141 mit grep -q verlassen?

Kann jemand erklären, warum ich den folgenden Beendigungscode 141 erhalte?

#!/usr/bin/bash

set -o pipefail

zfs list | grep tank
echo a ${PIPESTATUS[@]}

zfs list | grep -q tank
echo b ${PIPESTATUS[@]}

cat /etc/passwd | grep -q root
echo c ${PIPESTATUS[@]}

Ich bekomme

...
a 0 0
b 141 0
c 0 0

Nach meinem Verständnis ist der Exit-Code 141 ein Fehler, aber die obige Zeile gibt Null an, also sollte es Erfolg haben, würde ich sagen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage