Ich versuche, die Prozeßnummer von diesem BefehlCapturing Ausgabe von grep und geschnitten, um eine Variable in tcsh Shell
ps ax | grep catalina
auf eine Variable in tcsh Schale zu erfassen.
Bisher bin ich in der Lage, den Prozess Nummer auf den Bildschirm Echo dieses Skript:
set pnum = `ps ax | grep catalina`
echo $pnum | cut -d' ' -f1
Aber wenn ich versuche, das das Ergebnis sowohl der grep
und die cut
set pnum = `ps ax | grep catalina | cut -d' ' -f1`
zu erhalten
Das Ergebnis ist eine leere Zeichenfolge.
Und diese Sequenz
set pnum = `ps ax | grep catalina`
set pnum = `$pnum | cut -d' ' -f1`
erzeugt ein 1104: Command not found.
Fehler.
Was fehlt mir?
Danke für die Tipps. Ausgabe von meinem grep ist '1104 s002 S 6: 25.87/Bibliothek/Java/J ...' Also wenn ich das stattdessen tue: setze pnum = 'ps ax | grep catalina | Schnitt -d '' -f 2 | cut -d '' -f 1', pnum kommt jetzt zurück –
Danke für die Tipps. Ausgabe meiner grep ist 1104 s002 S 6: 25,87 /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/bin/java -Djava.util.logging.config.file =/Benutzer/stephenschultz/apache-tomcat-7.0.55/conf/logging.properties -Djava.util.logging.manager = org.apache ... Also wenn ich dies anstelle des Befehls in meinem ursprünglichen Beitrag gesetzt pnum = 'ps ax | grep catalina | Schnitt -d '' -f 2 | cut -d '' -f 2 pnum kommt zurück mit Woher kommt das extra 8895? –
Was passiert, wenn Sie eine PID erhalten, die nur 3 Stellen lang ist? oder 5 oder 6? Außerdem erstellen Sie eine sehr "teure" Lösung, indem Sie drei Prozesse haben, um den benötigten Wert zu "trimmen". Die "awk" Lösung, die ich einschließe, behandelt jede Größe einer PID und ist nur ein Prozess. Aber ich bin froh, dass Sie sich selbst ein Bild machen. Viel Glück. – shellter