Ich versuche, die Nummer eines bestimmten Prozesses in bash zu finden Verwendung, wenn die Bedingung alsBash oneliner mit Rohren und wenn die Bedingung geben Fehler
if ps auwx | grep -v grep | grep -ic python -le 2; then echo error; else echo no_error; fi
und ich bin immer Ausgang als
grep: python: No such file or directory
no_error
Der One-Liner scheint zu brechen, wenn ich Pipe verwende, und kein Fehler wird geworfen, wenn ich Rohr weglassen, und es spielt keine Rolle, wenn ich den absoluten Pfad zu grep entweder. Ich kann nicht das erforderliche Ergebnis erhalten ohne Rohr. Was mache ich hier falsch? Ich kann dies in einer Skriptdatei erledigen, indem ich sie in Variablen aufspalte und dann vergleiche, aber ich habe dies als Übung benutzt, um bash zu lernen. Jede Hilfe wird sehr geschätzt.
Überprüfen Sie, ob 'pgrep' auf Ihrem Computer verfügbar ist. – chepner