2017-05-29 186 views
0

解析「PS」命令的輸出我已經試圖讓使用「設置 - 」一個進程的PID爲: 說一個流程被啓動,命令:java -jar someProg.jar「設置 - 」命令,在終端

在一個shell腳本,我可以通過這種方式獲得的ProcessID:

#  
pid_=$(ps -axf | grep someProg | grep -v grep) 

set -- $pid_ 

echo $1 
# 

現在,我試圖通過編寫命令,以獲得終端PID:

ps -axf | grep someProg | grep -v grep | set -- | echo $1 

但是我沒有GE什麼都沒有。

我怎樣才能得到輸出pid使用設置 - 終端上的命令。

感謝

+0

無需'set'。 http://xyproblem.info/ –

+0

'ps' +'grep' ='pgrep' – ceving

回答

0

什麼

ps -axf | grep someProg | grep -v grep | awk '{print $1}' 

它顯示someProg進程的PID ...

1

你既不能管到set,因爲它不支持的話,也沒有使用工具,如xargs ,因爲set是內置的。

這是你能做的一切:

set -- $(ps -axf | grep someProg | grep -v grep) ; echo $1 

順便說一句:你不能管到echo無論是。

+0

Re *也不使用'xargs' *「這樣的工具:有辦法。例如,'echo foo bar | xargs bash -c'set - 「$ @」; echo $ 2'baz'。 – agc