Using Grep

Reply

Join Date: May 2004
Posts: 7
Reputation: hotlantas69 is an unknown quantity at this point 
Solved Threads: 0
hotlantas69 hotlantas69 is offline Offline
Newbie Poster

Using Grep

 
0
  #1
May 15th, 2004
my problem I have to write on a single line a command to launch a script only if the number of users on the system is less than ten.
This is what I have so far.
grep | who "* < 10 " $Users-on
I always get confused about quotes and brackets
Reply With Quote Quick reply to this message  
Join Date: Mar 2004
Posts: 1,620
Reputation: kc0arf is a jewel in the rough kc0arf is a jewel in the rough kc0arf is a jewel in the rough 
Solved Threads: 51
Team Colleague
kc0arf kc0arf is offline Offline
Posting Virtuoso

Re: Using Grep

 
0
  #2
May 15th, 2004
Hello,

Grep is a filter, meaning that you have to send something to grep before grep can do anything. For example:

ps -aux | grep kc0arf

on a *nix machine will list out all of the processes that have kc0arf on the output of the ps command.

So, you need to use the who command to find out how many users are logged onto your machine. That is done by:

who

And you see all of the users. But let's look further:

man who

and you will see some options. Looking, we see who -- count.

Take a look at that, and you should find what you are looking for.

Unfortunately, I do not know further on how to do a conditional at the command prompt... I usually write a short bash script that has if/then/else logic nice and neatly formatted.

Let us know.

Christian
Reply With Quote Quick reply to this message  
Join Date: Dec 2003
Posts: 2,414
Reputation: alc6379 has a spectacular aura about alc6379 has a spectacular aura about alc6379 has a spectacular aura about 
Solved Threads: 123
Team Colleague
alc6379's Avatar
alc6379 alc6379 is offline Offline
Cookie... That's it

Re: Using Grep

 
0
  #3
May 15th, 2004
Originally Posted by kc0arf

Unfortunately, I do not know further on how to do a conditional at the command prompt... I usually write a short bash script that has if/then/else logic nice and neatly formatted.
You'd just write the same thing at the prompt, just use semicolons instead of carriage returns:

bash-2.05# if [ foo ] ; then bar ; else echo "not foo or bar" ; fi
Alex Cavnar, aka alc6379
Reply With Quote Quick reply to this message  
Join Date: May 2005
Posts: 1
Reputation: profhof is an unknown quantity at this point 
Solved Threads: 0
profhof profhof is offline Offline
Newbie Poster

Re: Using Grep

 
0
  #4
May 24th, 2005
The syntax is different according for each shell, but if you are using the bash shell you could try the following:

if [ `who | wc -l` -lt 10 ]; then
echo "less than";
else
echo " more than";
fi

which can be written as one line as well, but i don't know what difference that would make.

if [ `who | wc -l` -lt 10 ]; then echo "less than"; else echo " more than"; fi

the point is that you need two programs, one that lists the users: who and one that counts lines wc.

wc is actually a word counting program, but with the -l flag it counts lines

The execution inverted comma's '`' mean to take the textual result and use it as a variable. That is the number that is returned from word count should be used as a variable.

The if statement uses the -lt flag, which stands for less than
so if [ `who | wc -l` -lt 10 ]
means if the the number of lines of the who output is less than 10, then perform the following action ...
in our case just echoing out to the screen, but you will want to run your program there

l8a
profhof
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC