0

3つのプロセスがあります。現在のディレクトリで実行中のプロセスの「カウント」を見つける必要があります。

# named ../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 Jul05 ?        00:00:00 perl sample.pl
[root@sp3 sample]#

私が返さなければならない結果は3です。

現在サンプルディレクトリにあり、同じディレクトリ内のプロセスの数をカウントする必要があります

解決策を投稿してください。

4

5 に答える 5

5

試す

LOCAL_PWD = pwd
ps -auxeaf| grep $LOCAL_PWD| wc -l

wc -l は行数を数えます

プロセスのフルパスを表示する方法については、こちらをご覧ください

于 2012-07-06T10:48:34.310 に答える
2

これは実際には適切な場所ではありません (stackexchange の Linux 部分があります)。ただし、任意の出力で行をカウントするために使用できるwcため、コマンドを次のようにパイプしますps -eaf | grep perl | wc -l。ところで、grepコマンド自体が一致しないようにすることもお勧めしますgrep [p]erl([] を任意の 1 文字の前後に置くと、依然として '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
于 2012-07-06T10:49:28.253 に答える
0

シンプル: ps -eaf | グレップパール | grep -v グレップ | トイレ -l

于 2014-11-08T14:25:49.573 に答える
-1

実行中が「実行のためにキューに入れられた」ことを意味する場合:

ps ax -o stat,args |grep '^R'|wc -l
于 2012-07-06T10:50:54.703 に答える