Ich nehme an, Sie möchten die Anzahl der laufenden Prozesse vor und nach (Ihre Frage war nicht klar darüber) zählen. Wenn ja, können Sie Rohr ps in wc:
export before=`ps --no-headers | wc -l`
- EDIT ---
nachzulesen ich die Frage, und es kann sein, dass Sie für die eigentlichen Prozesse suchen, die sich unterscheiden. Wenn das der Fall ist, dann können Sie die Ausgabe in Variablen erfassen und vergleichen denen:
target:
@ before=$$(ps --no-headers); \
run test; \
after=$$(ps --no-headers); \
echo "differing processes:"; \
comm -3 <(echo "$before") <(echo "$after")
Einige schnelle Anmerkungen gegeben: ich die Linien alle \
‚s mit verketteten wie Sie erwähnt haben Sie Makefiles verwendet, und die Der Gültigkeitsbereich einer Variablen ist nur die Rezepturzeile, in der sie definiert ist. Durch die Verkettung der Zeilen haben die Variablen einen Umfang des gesamten Rezepts. Ich
verwenden Doppel $$
wie Ihr ursprüngliches Post eine Make-Datei vorgeschlagen, und eine Make-Datei $$
wird zu einem einzigen $
in dem Bash-Code erweitert ausgeführt werden.
var=$(command)
in bash Dadurch ordnet var
die Ausgabe von command
I die <()
Konvention verwendet, die einzuschlagen spezifisch ist. Dadurch können Sie die Ausgabe eines Befehls als Datei behandeln, ohne eine Datei erstellen zu müssen. Beachten Sie, dass ich die Variablen in Anführungszeichen gesetzt habe - dies ist erforderlich, sonst ignoriert die Bash Zeilenumbrüche beim Erweitern der Variablen.
Pipe die Ausgabe von ps durch awk, um einen Exit-Code zurückzugeben. –
Wenn Sie sagen, vergleichen Sie sie, meinen Sie testen, ob sie gleich sind, oder eine andere automatische Analyse durchführen, oder legen Sie beide auf dem Bildschirm, oder was? – Beta