Shell-Skript ps "grep" u.a. nicht beinhalten

Status
Für weitere Antworten geschlossen.

Matthieu

Benutzer
Mitglied seit
03. Nov 2008
Beiträge
13.222
Punkte für Reaktionen
88
Punkte
344
Schönen Sonntag Community.
Ausgangspunkt ist folgender Code:
Rich (BBCode):
  for ARG in $@
  do
    if ( /bin/ps | /bin/grep "$ARG" )
    then
Und dahinter eben die entsprechenden Anweisungen ...
Das Problem ist: Ich bekomme immer true zurück, denn bei ps schnappt er auch den "grep ..." mit auf.
Also was tun? Ich würde schon gern beim integrierten ps bleiben, auch wenn es eher suboptimal ist.

MfG Matthieu
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.067
Punkte für Reaktionen
3.885
Punkte
488
Was hälst du von
Code:
... /bin/ps | /bin/grep "$ARG" | /bin/grep -v "grep" ...
Hab's so schon öfter gesehen.

Gruß
Benares
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
In der Shell bedeuten runde Klammern: starte eine Subshell und gibt den Exit-Status zurück ... Vielleicht wolltest du ja gar keine Subshell, sondern eine Pipe-Verknüpfung testen, dann halt ohne runde Klammern ...

Itari
 

Ap0phis

Benutzer
Mitglied seit
16. Dez 2010
Beiträge
6.731
Punkte für Reaktionen
3
Punkte
158
Wie wär´s alternativ mit:
Rich (BBCode):
if [ `/bin/ps | /bin/grep -c "$ARG"` -ge 2 ]
then
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat