tcsh's exit codes

rank1seeker at gmail.com rank1seeker at gmail.com
Mon Jun 25 14:03:01 UTC 2012


----- Original Message -----
From: Johan van Selst <johans at stack.nl>
To: rank1seeker at gmail.com
Cc: hackers at freebsd.org
Date: Sat, 23 Jun 2012 19:14:07 +0200
Subject: Re: tcsh's exit codes

> rank1seeker at gmail.com wrote:
> > There is something wrong with tcsh shell:
> > 
> > # mergemaster -V | grep '\--run-updates'
> >     Returned exit code 1
> > # mergemaster -V | grep -q '\--run-updates'
> >     Returned exit code 141
> 
> I believe this has been a feature of csh and tcsh since the dark ages.
> Negative status codes propagate through pipelines (and through backtick
> sub-commands as well). In fact the returned $status value is the value
> of the last command that returned an error (non-zero) status code.
> This makes it easy to determine if a pipeline command sequence has
> failed.
> 
> The 141 status code indicates a sigpipe: the pipeline was not completely
> read (as described in the grep manual for this case). This also is the
> common exit code when using head(1) for example.
> 
> This error-propagation behaviour can be suppessed with 'unset anyerror'
> in tcsh. In that case it should work as you expect. But note that your
> commands are no longer compatible with 'good old' csh behaviour then.
> 
> 
> Regards,
> Johan


Thanks for clarification J.

D.


More information about the freebsd-hackers mailing list