> I am trying to create a shell script with /bin/sh that will > count how many httpd processes are running at the time. > This is how it would look as a perl script: > ---start of script--- > #!/usr/bin/perl > $count = 0; > @hits = (`ps -afe | grep httpd | grep -v grep`); > foreach $entry (@hits) { > $count++; > } > print "$count\n"; > ---end of script--- > > I am trying to do this in an sh script. Partly for learning > partly because I want to do some other things to, but can > only know how to do them in a shell script. Any help would > be greatly appreciated.
The following shell script should do the trick:
--- start of script --- #!/bin/bash
COUNT=`ps -aef | grep httpd | grep -c -v grep`
echo $COUNT --- end of script ---
If the reason for your question is to understand how to use a for loop, the following script will also work:
--- start of script --- #!/bin/bash PROCIDLIST=`ps -aef | grep httpd | grep -v grep | awk '{print $2}'` for PROCID in $PROCIDLIST do COUNT=$((COUNT+1)) done
echo $COUNT --- end of script
Please note there is another syntax for the 'for' command, which looks like the following: ---- for (( statement1; statement2; statement3)) do statement block done ---- The above 'for' syntax works like the 'for' statement in C.
Steve, Brian and Michael.
Thank you all for your responses. I had tried the wc -l option and couldn't get it to work. Figured it was because it was for files. It was just because I tried it in every way but the correct way.
Michael
You gave me just what I was looking for. A little knowledge of the for loop. Was hoping for a loop that would actually count the lines and not the words though. But your awk command helped me there. I will continue hunting for an answer to my "learning question" where I am just trying to find out how to count whole lines in a shell script variable. with a loop internally to the script without the wc command.
Thanks
Steve
-- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list