Die spezielle Variable $?
erweitert sich auf den Exit-Status der zuletzt ausgeführten Vordergrundpipeline . In Ihrem Beispiel | echo $?
ist dies die zuletzt ausgeführte Vordergrundpipeline. Zu diesem Zeitpunkt ist der Exit-Status des Befehls vor dem letzten Befehl |
nicht mehr über erreichbar $?
.
In einem verwandten Hinweis können Sie den Exit-Code direkt in bedingten Anweisungen verwenden. Beispiel:
if ls | grep -q foo; then echo success, there is foo; fi
Oder, wenn Sie bei Erfolg etwas ausführen möchten, können Sie den nächsten Befehl folgendermaßen verketten &&
:
ls | grep -q foo && echo success