统计系统进程数的脚本

统计系统进程数的脚本

复制内容到剪贴板
代码:
#!/bin/bash

cd /proc
process_amount=0
for filename in *; do
    if echo $filename|grep "[0-9]." >/dev/null; then
        let process_amount++
    fi
done

echo $(( process_amount-1 ))
就是太慢了      
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=16263 $?=0] ; cat pids.sh
#!/bin/bash

cd /proc
set -- [0-9]*
echo $#
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=16263 $?=0] ; ./pids.sh
85
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=16263 $?=0] ; ps -ef | wc -l
86
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=16263 $?=0] ; bye
      
BS的脚本的问题(k.sh)
复制内容到剪贴板
代码:
> > ps -ef | wc -l
112

> time ./j.sh
111

real    0m0.007s
user    0m0.008s
sys     0m0.000s
>  time ./k.sh
100

real    0m0.292s
user    0m0.052s
sys     0m0.168s
> cat j.sh
#! /bin/bash

cnt=
for i in $( ls -d /proc/[1-9]* ); do
    (( j++ ))
done

echo $j
      
复制内容到剪贴板
代码:
#!/bin/bash

eval array=($(ls -d /proc/[1-9]*))

echo ${#array[@]}
和上面的速度差不多。两句话完成      
其实这个帖子挺没劲的
好在看到了各路方法

ls -d /proc/[0-9]* | wc -l