Warum kann ps wissen, welcher Prozess danach läuft?

2
[root@myvm1 ~]# ps aux | grep ls
root     13594  0.0  0.1   3912   672 pts/1    R+   09:46   0:00 grep ls

In den oben, die ps aux läuft zuerst und seine Ausgabe wird dann an die weitergeleitet grep ls Befehl. Das grep ls Befehl läuft nach ps aux.

Warum also? ps wissen Sie über den Prozess, der danach läuft und hat es in der Ausgabe?

bobo
quelle
2
Während grep kann keine Ausgabe verarbeiten, bis sie erstellt wurde grep verarbeiten kann entweder vor oder nach dem erstellt werden ps verarbeiten. Es gibt keinen besonderen Grund, warum es so oder so sein muss.
David Schwartz

Antworten:

4

In den oben, die ps aux läuft zuerst und seine Ausgabe wird dann an die weitergeleitet grep ls Befehl. Das grep ls Befehl läuft nach ps aux.

Warum also? ps wissen Sie über den Prozess, der danach läuft und hat es in der Ausgabe?

Sie schreiben über eine logische Reihenfolge der Befehlssequenzierung.

Wenn Sie Einblicke in Bash-Verfahren erhalten, erfahren Sie, dass beide Befehle und das Piping-Framework in einer Reihenfolge erstellt werden können, die eigentlich keine Rolle spielt.

Darüber hinaus ist das Piping-Framework höchstwahrscheinlich eine Befehlsumleitung.

Ihre Antwort lautet: der Befehl ps wird tatsächlich nach dem Prozess ausgeführt, der ausgeführt wird grep wurde erschaffen.

uprego
quelle
Vielen Dank. Basierend auf Ihrer Antwort habe ich eine andere Antwort gefunden, die dies näher erläutert: unix.stackexchange.com/questions/37508/…
bobo