Problems with "if" and "wc"


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problems with "if" and "wc"
# 1  
Old 12-29-2009
Data Problems with "if" and "wc"

Hello, I'm pretty new to this shell scripting, and I need some help, I must make a script, where I'm supposed to count all the running processes of the user,
what I've done so far, is, ps -u | wc -l
but I dont know even if this is completely right..

and besides that, I must make a statement if the processes are more than 5, I was thinking of using something like

if []
then
echo "good job"
else;
echo "bad job"

but thing is, I dont know how to configure wc, so that this message will show only if the number of processes is 5 or more. how do i do this?
# 2  
Old 12-29-2009
This sounds remarkably like homework. Please post this in the homework forum.
# 3  
Old 12-30-2009
Try this one.
Code:
 
# if [ $(ps -ef | grep "^root" | wc -l) -lt 5 ]; then echo "Good Job"; else echo "Bad Job"; fi

replace with your username inplace of bold
# 4  
Old 12-30-2009
A small change . Pls avoid double quotes for search pattern . Command should as
if [ $(ps -ef | grep root | wc -l) -lt 5 ]; then echo "Good Job"; else echo "Bad Job"; fi
# 5  
Old 12-30-2009
Quote:
Originally Posted by udhayashankar
A small change . Pls avoid double quotes for search pattern . Command should as
if [ $(ps -ef | grep root | wc -l) -lt 5 ]; then echo "Good Job"; else echo "Bad Job"; fi
problem is not with the double quote but with "^"
because the ps command output begins with space.
try it:-

Code:
ps -ef | grep "username"
or
ps -ef | grep 'username'
or even
ps -ef | grep username

all of them will give you same o/p

BR
# 6  
Old 12-30-2009
It's better to let "ps" do the selection work.
Be careful about counting the process "ps" itself in the count or counting the column heading from "ps".

For example, counting the processes for user "lp". There is much variation in the syntax for "ps" so you may need to adjust for your version.

Code:
#!/bin/ksh
USERNAME="lp"
COUNTER=$(ps -fu${USERNAME} | grep -v " PID " | grep -v 'ps -fu' | wc -l)
if [ ${COUNTER} -ge 5 ]
then
      echo "User ${USERNAME} : Processes count : ${COUNTER}"
fi

# 7  
Old 12-30-2009
Quote:
Originally Posted by methyl
Code:
COUNTER=$(ps -fu ${USERNAME} | grep -v " PID " | grep -v 'ps -fu' | wc -l)

Let's not UUoC(grep & wc) Smilie
Code:
COUNTER=$(ps -fu ${USERNAME} | grep -vc "PID\|ps -fu")

Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question