【问题标题】:"set --" command to parse output of "ps" command on terminal“set --”命令解析终端上“ps”命令的输出
【发布时间】:2017-05-29 12:26:04
【问题描述】:

我尝试使用“set --”获取进程的 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

但我什么也没得到。

如何在终端上使用 set -- 命令获取输出 pid。

谢谢

【问题讨论】:

标签: linux shell pid ps


【解决方案1】:

怎么样

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

显示someProg进程的PID...

【讨论】:

    【解决方案2】:

    您既不能通过管道导入set,因为它不支持它,也不能使用像xargs 这样的工具,因为set 是内置的。

    这是你所能做的:

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

    顺便说一句:你也不能通过管道输入echo

    【讨论】:

    • Re "也不使用像xargs这样的工具:有办法。例如,echo foo bar | xargs bash -c 'set -- "$@" ; echo $2' baz
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2012-04-30
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多