result=`ps -Al | grep command-name | wc -l`
echo $result
Auf Systemen mit pgrep
verfügbar, die -c
Option gibt die Anzahl der Prozesse zurück, die mit dem angegebenen Namen übereinstimmen
pgrep -c command_name
Beachten Sie, dass dies eine grep
ist -Stilübereinstimmung, keine exakte Übereinstimmung, also z. pgrep sh
passt auch zu bash
Prozesse. Wenn Sie eine genaue Übereinstimmung wünschen, verwenden Sie auch den -x
Option.
Wenn pgrep
nicht verfügbar ist, können Sie ps
verwenden und wc
.
ps -C command_name --no-headers | wc -l
Die -C
Option auf ps
nimmt command_name
als Argument, und das Programm gibt eine Tabelle mit Informationen über Prozesse aus, deren ausführbarer Name mit dem angegebenen Befehlsnamen übereinstimmt. Dies ist eine exakte Übereinstimmung, nicht grep
-Stil. Die --no-headers
Option unterdrückt die Kopfzeilen der Tabelle, die normalerweise als erste Zeile gedruckt werden. Mit --no-headers
, erhalten Sie eine Zeile pro abgeglichenem Prozess. Dann wc -l
zählt und gibt die Anzahl der Zeilen in seiner Eingabe aus.