[ale] bash return and exit

Scott Plante splante at insightsys.com
Tue Sep 17 12:24:09 EDT 2013


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 
----- Original Message -----

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 
_______________________________________________ 
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 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ale.org/pipermail/ale/attachments/20130917/5b133bab/attachment.html>


More information about the Ale mailing list