bash脚本 - 如何获取正在运行的进程已失效的时间和参数

时间:2014-10-10 15:25:45

标签: bash shell

假设使用如下参数运行python脚本:

 501  8694  8590   0 11:01PM ttys011    0:02.03 /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python test.py 100 yes
 501  8699  8696   0 11:01PM ttys012    0:01.03 /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python test.py 100 no

现在我想使用bash脚本来提取当前正在运行的那两个进程,并获取每个进程运行的时间量和参数yes / no。这就是我到目前为止所做的工作,只是为每个过程抽取时间:

#!/bin/bash

commands=$(ps -ef | grep -v grep | grep "while-file")

var=0
for command in $commands;do
    ((var++))
    if [ $var = 7 ];then
        echo "time taken:$command"
    fi

    if [ $var = 17 ];then
        echo "time taken:$command"
    fi
done

但这不干净。如果我碰巧有3个进程在运行,我的代码将会中断

所以我的问题是:

  1. 如何获得每个进程运行的时间。在这种情况下,第一个进程已运行2分3秒,而第二个进程运行1分3秒。

  2. 我怎样才能从每一行得到“是”或“否”的参数。

  3. - 编辑 -

    好的,基于twalberg评论我这样做了:

    $ps -ef | grep [w]hile-file.py | awk '{print $7, $NF}'
    0:00.00 while-file.py
    0:00.02 yes
    0:00.03 no
    

    如何忽略第一行:0:00.00 while-file.py

0 个答案:

没有答案