This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: retval of pipelined cmd in bash


Hello Soren,

What you need is the $? variable. The simplest testcase would be this:

>>> rt.c
int
main()
{
  return(21);
}
<<<

  [root@webdev]:{509}:% gcc rt.c -o rt
  [root@webdev]:{510}:% ./rt
  [root@webdev]:{511}:% echo $?
  21
  [root@webdev]:{512}:% 

Elfyn
elfyn@exposure.org.uk


--- Soren A <soren_andersen@fastmail.fm> wrote:
>Hallo Cygwains,
>
>[Heck, I dunno... "Cygwinauts"?].
>
>I have a possibly OT question, that is, a bash shell question. Lacking
>the insight into the deepest reaches of shell-ology, I have come up
>empty on all attempts to solve this one for myself. (Those attempts have
>included doing `info bash' and reading the "Advanced Bash Scripting
>Guide", an excellent resource available on the Web). 
>
>I am writing a shell script that chains together several commands in a
>pipeline -- very *nix-ish. The first command in the pipeline is an
>invocation of `make'. Here's the entire script code -- I've tried many
>very elaborate or bizarre things, before this: 
>----------------------------------8<-----------------------------------
>   function powermake
>   {
>	 declare -x LESS='-z-2$ -s~wR'
>	 declare PAGER='/bin/less'
>	 declare +x ECODE=
>	 { make "$@" || ECODE=$? ; } 2>&1 | tee $MAKE_ERR_TO | \
>	    /cdv/f/scr/colormake.pl | $PAGER -O"${MAKE_ERR_TO}.colorlog"
>	 if [[ $ECODE ]]  # "0" and "1" are both TRUE; "null" is FALSE.
>	   then $gvimexe --servername 'QUICKFIX' -q "$(cygpath -wla $MAKE_ERR_TO)"
>	   else echo 'No "make" errors to diagnose: retval was ' '"'$ECODE'".'
>	 fi
>	 return $ECODE
>   }
>----------------------------------8<-----------------------------------
>
>The problem I am trying to solve is how to get the return value of the
>`make' tool. If there was an error I need to know about it. But as it
>stands, nothing that i have tried will cause me to see the VIM editor
>session start up; the value in ECODE is apparently always "0". 
>
>Does anyone know how to do this -- how to pull out a return value from a
>command in the middle of a pipeline? 
>
>   Thanks,
>     Soren
>-- 
>Yes, it's really Sören, not Soren.
>
>
>
>
>
>--
>Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>Bug reporting:         http://cygwin.com/bugs.html
>Documentation:         http://cygwin.com/docs.html
>FAQ:                   http://cygwin.com/faq/

_____________________________________________________________
www.smokeJet.com - Free UK Internet Services

_____________________________________________________________
Select your own custom email address for FREE! Get you@yourchoice.com w/No Ads, 6MB, POP & more! http://www.everyone.net/selectmail?campaign=tag

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]