On Mon, Aug 28, 2006 at 12:59:28AM +0200, Paul de Weerd wrote:
> hi all,
> 
> While reading ksh(1) I found :
> 
>       A pipeline may be prefixed by the `!' reserved word,
>       which causes the exit status of the pipeline to be
>       logically complemented: if the original status was
>       0, the complemented status will be 1; if the
>       original status was not 0, the complemented status
>       will be 0.
> 
> Please now try `if ! false; then echo true; fi`. Why does my shell eat
> muchos CPU & RAM after such a short pipeline ? This appears to be a
> bug in our ksh. I've tried bash (i know), FreeBSD's /bin/sh and
> FreeBSD's ksh (also from pdksh, from what I can tell) all do what one
> would expect.
> 
> I've seen this behaviour before but never spent the time to
> investigate. Now it seems that ksh(1) may be at fault (or the manpage,
> but since other shells seem to do it right, I would suspect ksh(1)
> first).
> 
> Anyone with a definitive answer ? Is this a bug or am I missing
> something ?

I just tried this on my recent -current build; ps -lh:

Before:
  UID   PID  PPID CPU PRI  NI   VSZ   RSS WCHAN   STAT TT       TIME
COMMAND
 1000 12404  8217   1  18   0   432   524 pause  Is    p2    0:00.01
/bin/ksh /b

After:
 1000 12404  8217   1  18   0   432   524 pause  Is    p2    0:00.01
/bin/ksh /b

As you can see, not much appears to have happened. How can we reproduce
this?

                Joachim

Reply via email to