On 1/12/15 4:23 AM, l_j_f wrote:
> 1. bash version
> -sh-4.3# bash --version
> GNU bash, version 4.3.0(1)-release (arm-hisiv200-linux-gnu)
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>  
> This is free software; you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>  
> 2. the script
> #!/bin/bash
>  
> ok() {  
>         echo ok  
> }                      
>                        
> error() {                                                
>         echo error                                       
>         return 1                                         
> }                                                        
>                                                          
>                                                          
> main() {                                                 
>         local err                                        
>                                                          
>         local a=$(ok); err=$?                            
>         echo a=$a err=$err
>              
>         local b=$(error); err=$?
>         echo b=$b err=$err
> }  
> main "$@"
>  
> 3. the result
> -sh-4.3# ./test2.sh 
> a=ok err=0
> b=error err=0 #I think it should be "b=error err=1"

This is not a bug.  See the following message from two weeks ago:

http://lists.gnu.org/archive/html/bug-bash/2014-12/msg00176.html

or read the last paragraph of

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to