[ale] bash return and exit

leam hall leamhall at gmail.com
Tue Sep 17 13:50:10 EDT 2013


Very nice, all, thanks!

function is_rpm_installed() {
    # Return 0 if the RPM is installed, otherwise 1
    rpm -q $1 > /dev/null
    return $?
}


if is_rpm_installed fred; then echo "have it"; else echo "nope"; fi
nope

if is_rpm_installed kernel; then echo "have it"; else echo "nope"; fi
have it





On Tue, Sep 17, 2013 at 12:24 PM, Scott Plante <splante at insightsys.com>wrote:

> I'm not sure I understand what you're trying to do, but it appears you're
> confusing standard out with return code. Backticks `cmd` and $(cmd) capture
> the standard output of a command. That's separate from the return code,
> which is meant to be zero if all works or some other number indicating the
> type of error. The $? resolves to the most recent return code, but you
> could also do this:
>
> if do_something
> then echo ok
> else echo sorry bub
> fi
>
> and bypass the $?
>
> Sorry, in a hurry. Hope I didn't typo or make a mistake.
>
> Scott
> ------------------------------
> *From: *"leam hall" <leamhall at gmail.com>
> *To: *"Atlanta Linux Enthusiasts" <ale at ale.org>
> *Sent: *Tuesday, September 17, 2013 12:06:44 PM
> *Subject: *[ale] bash return and exit
>
>
> I've looked at a few google searches and am not sure I understand what I'm
> seeing. In bash, I want to have a function do a test, and have a variable
> in the calling program set based on the function's actions. So far it seems
> as if I have to either "echo" the result or have the calling function use
> $?.
>
> Calling script:
>
> MY_VAR=`my_function`
>
> # This fails:
> my_function() {
>   do_something
>   return $?
> }
>
> # This works:
> my_function() {
>   do_something
>   if [ $? -eq 0 ]
>     echo 0
>   else
>     echo 1
>    fi
> }
>
> The first function works if the parent's calls:
>
> MY_VAR=`my_function; echo $?`
>
> Am I looking for something that's just not in bash?
>
> Leam
>
>
> --
> Mind on a Mission <http://leamhall.blogspot.com/>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
>
>


-- 
Mind on a Mission <http://leamhall.blogspot.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ale.org/pipermail/ale/attachments/20130917/d1dd4dd4/attachment-0001.html>


More information about the Ale mailing list