假设使用如下参数运行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个进程在运行,我的代码将会中断
所以我的问题是:
如何获得每个进程运行的时间。在这种情况下,第一个进程已运行2分3秒,而第二个进程运行1分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