delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/07/17/19:07:59

X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
Subject: RE: Possible bug in pgrep (procps)
Date: Mon, 17 Jul 2006 16:07:36 -0700
Message-ID: <1BBF464ECC68FB4AA7EF4AB997CC07310142A63C@NA-PA-VBE01.na.tibco.com>
From: "Matthew Woehlke" <mwoehlke AT tibco DOT com>
To: "Bengt-Arne Fjellner" <Bengt-Arne DOT Fjellner AT ltu DOT se>, <cygwin AT cygwin DOT com>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id k6HN7uRs004551

(http://cygwin.com/acronyms/#PPIOSPE)

mwoehlke skrev:
> Bengt-Arne Fjellner wrote:
>> pgrep from procps-3.2.6-1 when asking for an exact match with 
>> arguments seems to demand an extra space after the argument.
>> See the following sequence.
>>
>> No space after the f on the commandline $ emacs f& [1] 2072
>>
>> without extra space
>> $ pgrep  -x -f "emacs f"
>>
>> with extra space after f
>> $ pgrep  -x -f "emacs f "
>> 2072
>>
>> Bug or my misunderstanding ?
>
> Sure sounds like a bug, unless 'grep "foo"' is no longer supposed to 
> match the line "foo "... 'man pgrep' isn't very specific on how the 
> pattern matching is supposed to work, so I would assume partial 
> matches are expected to work (as they would in grep).
>
> Interestingly enough, on my computer (cygwin 1-5-19.4, procps 
> 3.2.6-1), I see the following:
>
> $ sleep 1h&
> [1] 2136
> $ pgrep -f 'sleep 1h'
> 2136
> $ pgrep -f 'sleep 1h '
> 2136
> $ pgrep -f 'sleep 1h  '
> $
>
> This also seems wrong; 'sleep 1h ' should not have matched anything
IMO.
> It does seem like there is something fishy going on.

Well I have now confirmed it.
The code that builds the full commandline adds "the n:th arg" and a
space to a buffer then loops around until all args are used up. It
should kill the last space.
and to restrict matches you have to add a -x for exact match.
so your command is (for pgrep) 'sleep 1h ' and 'sleep 1h' should match
but 'sleep 1h  ' shouldnt. and when asking for exact match only 'sleep
1h ' fits

P.S. I think never versions on linux might have this bug to.


>
> --
> Matthew
> Interix, Sphinterix. Cygwin apps don't crash. :-)
>

--
Bengt-Arne Fjellner

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019