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?


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.


Vielen Dank. Basierend auf Ihrer Antwort habe ich eine andere Antwort gefunden, die dies näher erläutert: unix.stackexchange.com/questions/37508/…
bobo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.