例如,
我必须找到3个进程才能找到当前目录
中运行进程的“计数”命名为../ sample
[root @sp3 sample] #ps -eaf | grep perl
root 14104 1 58 08:39? 03:31:34 perl example1.pl
root 17441 1 41 09:09? 02:17:24 perl example2.pl
root 24543 1 0月05日? 00:00:00 perl sample.pl
[root @sp3 sample]#
我必须返回的结果是3
I have currently in sample directory and i have to count the number of process in same
directory
请发布任何解决方案。
答案 0 :(得分:5)
答案 1 :(得分:2)
这真的不适合这个(有一个linuxexchange的linux部分)。但您可以使用wc
来计算任何输出中的行,因此将命令管道传递给它:ps -eaf | grep perl | wc -l
。顺便说一下,我还建议grep
命令与grep [p]erl
不匹配(将[]放在任何一个字符周围仍然只匹配'perl',但grep命令不再其中有“perl”。)
如果它对您有用,我会将我在下面的评论中提到的脚本放在一起。
total=0
for file in $(find -executable -type f) ; do
echo "Checking $file:"
count=$(ps -ef | awk '{print $8}' | grep "^.*/*${file##*/}$" | wc -l)
echo "$count processes found."
total=$(($total + $count))
done
echo $total
答案 2 :(得分:0)
简单: ps -eaf | grep perl | grep -v grep | wc -l </ p>
答案 3 :(得分:0)
我知道这个话题很老,但是这个问题没有解决办法。
解决方案1
ps ax |egrep "^/your/path/to/Script" |wc -l
egrep =从列表中获取所有进程 从指定的路径开始。您需要启动Perl脚本 使用Path / Script.pl,而不是./script。 ^ =多行-您也可以使用普通的 grep“ / your / path / to / script”
wc -l =计算所有结果
解决方案2
使用特定标识符和grep为脚本命名,例如:
script_example_ ident .pl
ps ax |grep "ident" |wc -l
答案 4 :(得分:-1)
如果通过跑步你的意思是“排队等待执行”:
ps ax -o stat,args |grep '^R'|wc -l