pgrep -f mit mehreren Argumenten

8

Ich versuche, einen bestimmten Prozess zu finden, der den Begriff "someWord" und zwei weitere Begriffe enthält, die durch $ 1 und $ 2

repräsentiert werden %Vor%

was zurückgibt

%Vor%

Was passiert mit meinem regulären Ausdruck? Das pgrep direkt in der Shell zu verwenden funktioniert einwandfrei.

    
tommsen 12.02.2013, 16:45
quelle

3 Antworten

8
___ answer14837660 ___

Erstens gibt es keinen Grund, den Befehl %code% in irgendwas zu packen. Verwenden Sie einfach den Exit-Status:

%Vor%

Wenn %code% erfolgreich ist, geben Sie 1 zurück; Andernfalls geben Sie 0 zurück. Sie kehren jedoch nur die erwarteten Beendigungscodes zurück. Was Sie wahrscheinlich tun möchten, ist einfach die %code% die letzte Aussage Ihrer Funktion zu sein; dann ist der Exit-Code von %code% der Exit-Code deiner Funktion.

%Vor%     
___ answer 14837523 ___

Guter Herr, vielleicht das

%Vor%

oder das

%Vor%     
___ qstntxt ___

Ich versuche, einen bestimmten Prozess zu finden, der den Begriff "someWord" und zwei weitere Begriffe enthält, die durch $ 1 und $ 2

repräsentiert werden %Vor%

was zurückgibt

%Vor%

Was passiert mit meinem regulären Ausdruck? Das pgrep direkt in der Shell zu verwenden funktioniert einwandfrei.

    
___ answer14837730 ___

Wenn Sie wirklich etwas tun möchten, falls Ihr Befehl einen Fehler zurückgibt:

%Vor%     
___ tag123regex ___ Reguläre Ausdrücke stellen eine deklarative Sprache zur Verfügung, um Muster in Strings zu vergleichen. Sie werden häufig für die Überprüfung, Analyse und Umwandlung von Zeichenfolgen verwendet. Da reguläre Ausdrücke nicht vollständig standardisiert sind, sollten alle Fragen mit diesem Tag auch ein Tag enthalten, das die anwendbare Programmiersprache oder das entsprechende Werkzeug angibt. HINWEIS: Nach HTML-, JSON-, usw.-Regexen zu fragen, neigt zu negativen Reaktionen. Wenn es einen Parser dafür gibt, verwende stattdessen diesen. ___ tag123bash ___ Für Fragen zu Skripten, die für die Bash-Befehlsshell geschrieben wurden. Für Shell-Skripte mit Fehlern, überprüfen Sie diese bitte mit dem Shellcheck-Programm (oder im web-Shellcheck-Server unter https://shellcheck.net), bevor Sie hier posten. Fragen zur interaktiven Nutzung von Bash sind bei Super Usern eher Thema als bei Stack Overflow. ___ tag123shell ___ Der Begriff "Shell" bezieht sich auf eine allgemeine Klasse textbasierter interaktiver Befehlsinterpreter, die meist mit den Unix- und Linux-Betriebssystemen verknüpft sind. Bei Fragen zum Shell-Scripting verwenden Sie bitte ein spezifischeres Tag wie 'bash', 'powershell' oder 'ksh'. Ohne ein spezifisches Tag sollte eine portable (POSIX-konforme) Lösung angenommen werden, obwohl zusätzlich 'posix' oder 'sh' zu bevorzugen ist. ___ tag123grep ___ grep ist ein Befehlszeilen-Textsuchprogramm, das ursprünglich für Unix geschrieben wurde. Es verwendet reguläre Ausdrücke für die Textübereinstimmung und wird häufig als Filter in Pipelines verwendet. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Programmierung mit grep- oder grep-basierten APIs bezieht. Fragen zur Verwendung oder Problembehandlung der Befehlszeilenoptionen von Grep selbst sind off-topic. ___ qstnhdr ___ pgrep -f mit mehreren Argumenten ___
Steven Penny 12.02.2013 16:47
quelle
0

Erstens gibt es keinen Grund, den Befehl pgrep in irgendwas zu packen. Verwenden Sie einfach den Exit-Status:

%Vor%

Wenn pgrep erfolgreich ist, geben Sie 1 zurück; Andernfalls geben Sie 0 zurück. Sie kehren jedoch nur die erwarteten Beendigungscodes zurück. Was Sie wahrscheinlich tun möchten, ist einfach die pgrep die letzte Aussage Ihrer Funktion zu sein; dann ist der Exit-Code von pgrep der Exit-Code deiner Funktion.

%Vor%     
chepner 12.02.2013 16:54
quelle
0

Wenn Sie wirklich etwas tun möchten, falls Ihr Befehl einen Fehler zurückgibt:

%Vor%     
Anew 12.02.2013 16:57
quelle

Tags und Links