About grep


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers About grep
# 1  
Old 09-07-2012
About grep

Dear all
My boss recomended me to update my script code like this.

Code:
PIDFile=`cat pid`
PIDMemory=`ps -ef | grep $PIDFile | grep -v grep`
if [ $? = 0 ];
then 
   touch /apps/airserv/binaries/ESB/flag_lockfile
	else
	 echo "Check the application......Starting process has failed!!!!!!!!!!!!!!!!!"

but i really don't understand the last grep Where his use suggests two times, beside if we are filtering a process, why -v? this flag bring to me the other process that do not match!!!
Any idea???
# 2  
Old 09-07-2012
ps -ef gives you all the process were running including your current grep command. that's why you should use -v option for last grep Smilie
# 3  
Old 09-07-2012
When you do 'ps | grep string', there's good odds grep will also show up, since it will be a running process containing the string you're looking for. A common band-aid is to patch 'grep -v grep' on the end to chop it out, but this usually isn't the best answer.

If you're on a system with /proc/, for example, you can check if the folder for the process still exists to tell if it's still running.

On some systems, you can also just do ps $PID to tell if a process is still running without having to process ps' output at all.

That's also a useless use of cat.

Code:
# Better way to read the file without cat
read PID < pidfile

if [ -d /proc/$PID ]
then
        echo "Process is still running"
else
        echo "Process does not exist"
fi

This User Gave Thanks to Corona688 For This Post:
# 4  
Old 09-07-2012
Pamu, i'm agree with you on that
Code:
ps -ef

show all the process even the others user, but, i'm agree with this command line until the first grep,
i mean the first grep that i passed the parameters with the value of the process that i'm trying to run, for me it's good enough, it's just my understanding, i'm trying my best learn of what teach me.
So for what, the second use of the grep and like this?
Code:
| grep -v grep`

# 5  
Old 09-07-2012
just try and see the output.

Code:
ps -ef | grep app

more on

what is your first grepgrep app also has your process name so it will result that grep also.

hope it helps Smilie
# 6  
Old 09-07-2012
Quote:
Originally Posted by Newer
So for what, the second use of the grep and like this?
Code:
| grep -v grep`

We already told you... It removes lines containing 'grep'.

Watch this:

Code:
$ ps aux | grep processname
tyler    24149  0.0  0.0   2008   524 pts/1    S+   13:26   0:00 grep --colour=auto processname

$

When you do ps | grep, you get grep in the output, because it has your string in it! So the -v grep is to remove lines containing grep...
# 7  
Old 09-07-2012
Thanks you guys, now it's clearer for me, my problem was that i didn't know that the result of the grep pint at the end of the line the word "grep".
Ok, so everything it's fine now. Thanks again!!!!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

2. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

3. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

4. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

5. UNIX for Dummies Questions & Answers

Advanced grep'in... grep for data next to static element.

I have a directory I need to grep which consists of numbered sub directories. The sub directory names change daily. A file resides in this main directory that shows which sub directories are FULL backups or INCREMENTAL backups. My goal is to grep the directory for the word "full" and then... (2 Replies)
Discussion started by: SysAdm2
2 Replies

6. UNIX for Dummies Questions & Answers

Difference between grep, egrep & grep -i

Hi All, Please i need to know the difference between grep, egrep & grep -i when used to serach through a file. My platform is SunOS 5.9 & i'm using the korn shell. Regards, - divroro12 - (2 Replies)
Discussion started by: divroro12
2 Replies

7. Shell Programming and Scripting

grep for certain files using a file as input to grep and then move

Hi All, I need to grep few files which has words like the below in the file name , which i want to put it in a file and and grep for the files which contain these names and move it to a new directory , full file name -C20091210.1000-20091210.1100_SMGBSC3:1000... (2 Replies)
Discussion started by: anita07
2 Replies

8. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

9. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

10. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies
Login or Register to Ask a Question