I would recommend looking for the full path, in case (like me) you have other things with the string "httpd" in the name. for i in `ps -afe | grep /usr/sbin/httpd | grep -v grep | awk '{print $2}'` do COUNT=$((COUNT+1)) done echo $COUNT (Another) Steve >>> steve@xxxxxxxxx 3/14/2005 15:35:03 >>> At 01:43 PM 3/14/2005, you wrote: > > 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 -- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list