Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Content-Type: text/plain Content-Disposition: inline Mime-Version: 1.0 Date: Fri, 20 Dec 2002 14:51:42 -0800 (PST) From: Elfyn McBratney To: Soren A , cygwin AT cygwin DOT com Subject: Re: retval of pipelined cmd in bash Reply-To: cygwin AT cygwin DOT com X-Originating-Ip: [195.92.67.70] Message-Id: <20021220225142.241934979@sitemail.everyone.net> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id gBL3laj14099 Hello Soren, What you need is the $? variable. The simplest testcase would be this: >>> rt.c int main() { return(21); } <<< [root AT webdev]:{509}:% gcc rt.c -o rt [root AT webdev]:{510}:% ./rt [root AT webdev]:{511}:% echo $? 21 [root AT webdev]:{512}:% Elfyn elfyn AT exposure DOT org DOT uk --- Soren A 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 AT yourchoice DOT 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/