我想從這個命令從grep的捕獲輸出,並將其切割成變量在tcsh外殼
ps ax | grep catalina
捕獲進程號在tcsh外殼的變量。
到目前爲止,我可以使用這個腳本來呼應進程號到屏幕上:
set pnum = `ps ax | grep catalina`
echo $pnum | cut -d' ' -f1
但是當我嘗試這樣得到的結果均grep
和cut
set pnum = `ps ax | grep catalina | cut -d' ' -f1`
結果是一個空字符串。
而這個序列
set pnum = `ps ax | grep catalina`
set pnum = `$pnum | cut -d' ' -f1`
產生1104: Command not found.
錯誤。
我錯過了什麼?
感謝您的提示。 我的grep輸出是'1104 s002 S 6:25.87/Library/Java/J ...'所以如果我這樣做:set pnum ='ps ax | grep catalina |剪切-d''-f 2 |削減-d''-f 1',pnum現在回來 –
感謝您的提示。 我grep的輸出是 1104 s002 S 6:25.87 /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/bin/java -Djava.util.logging.config.file = /用戶/ stephenschultz/apache-tomcat-7.0.55/conf/logging.properties -Djava.util.logging.manager = org.apache ... 因此,如果我這樣做而不是在我的初始職位 集pnum ='ps ax | grep catalina |剪切-d''-f 2 | cut -d''-f 2 pnum回來了 額外的8895從哪裏來? –
如果獲得只有3個地方長的PID,會發生什麼情況?或5,或6?另外,你正在創建一個非常「昂貴」的解決方案,因爲你有3個過程來「修整」你所需要的值。我包含的awk解決方案可以處理任何大小的PID,並且只有一個進程。但很高興你正在自己搞點東西。祝你好運。 – shellter