![]() |
|
|
|||||||
| Home | Forums | Register | Rules & FAQ | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. Shell Script Page. |
Other UNIX.COM Threads You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Splitting file based on number of rows | wahi80 | Shell Programming and Scripting | 2 | 4 Weeks Ago 06:38 PM |
| Copy lines from a log file based on timestamp | ranjiadmin | UNIX for Advanced & Expert Users | 1 | 05-22-2008 12:16 AM |
| searching and storing unknown number of lines based on the string with a condition | swamymns | Shell Programming and Scripting | 7 | 05-12-2008 10:02 PM |
| Grabbing lines out of a file based on a date | bsp18974 | Shell Programming and Scripting | 2 | 07-17-2006 05:58 AM |
| case statement based on file availability | Loriel | Shell Programming and Scripting | 6 | 06-01-2004 05:24 AM |
![]() |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
|||
|
I need to have an if statement in a script to run if there are certain processes running. Easiest way I can see to do this is to run a ps and grep the results based on what I am looking for:
$ ps -ef | grep wtrs --- webtrend 5046 1 0 May 12 ? 0:28 /webtrends/versions/6.1/wtrs_ui -start --- webtrend 5030 1 0 May 12 ? 3:29 /webtrends/versions/6.1/wtrs -start --- webtrend 3550 5030 25 07:03:40 ? 91:09 /webtrends/versions/6.1/wtrs 314 -child --- webtrend 6473 3999 0 09:10:08 pts/4 0:00 grep wtrs --- webtrend 4409 5030 11 07:35:54 ?60:29 /webtrends/versions/6.1/wtrs 315 –child ("--" added in as line seperators) Normally, I would expect to see the first, second, and fourth lines. That means everything is running normally. The third and fifth lines in that example are present because the program (wtrs) is currently executing certain commands. So, what I want to do is an if statement that says (in English): If wtrs is present in the above example 3 or fewer times, execute the following commands, otherwise do something else. So what I was thinking of doing was first sending the output of the ps command into a text file: $ ps -ef | grep wtrs > test.txt Then the if statement could say: If test.txt < 4 lines long, execute. Anyone know how something like that would be possible, or if it would even be possible? |
| Forum Sponsor | ||
|
|
|
||||
|
Use wc -l to count the lines of the output
i.e. Code:
if [ $( ps -ef | grep wtrs | wc -l ) -gt "3" ]; then # do stuff for more than 3 lines else # do stuff for three or less lines fi ZB http://www.zazzybob.com |
|
|||
|
Quote:
|