in reply to sounds like the shell script is buggy
in thread Reaped:

Shell script is working fine when I use it in command prompt. Only when I used it in Perl, it gives additional count.

Here is the shell command that I used inside the program,

ps -f -u $userid | tr -s " " | cut -f9-20 -d" " | grep -v "grep" | grep -v "vi " | grep -v "view" | grep -c $1

It shows the following processes(Only in Perl),
sh /test/xyz abcd
/usr/bin/perl ./abcd.pl

  • Comment on Re: sounds like the shell script is buggy

Replies are listed 'Best First'.
Re^2: sounds like the shell script is buggy
by ivancho (Hermit) on May 26, 2005 at 11:13 UTC
    indeed.. 1 for the 'xyz abcd' call, and 1 for Perl running abcd.pl. So no surprise, when you don't run Perl, you don't get 1 for Perl..

    You could grep -v the xyz(or rather $0) call out, if you like.. but please realize that this is not a good way of dealing with the problem... what are you going to do, if you start using emacs next month? - you'll have to rewrite all your shell scripts?..

    It seems your Perl script needs to know how many instances of itself are running. This is different than knowing about any random process, if only because you have control over it.. Perhaps it can read and increment a number, saved in a file in some global location.. or just touch a new file somewhere.. or you could have a global watcher script, that registers new instances ( although that sounds a little far fetched )..

    I'm just sure that there are many solutions that don't involve convoluted shell calls..

      Thanks a lot for your help.
      
      I'll think about all your VALUABLE points.