2017-05-29 157 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