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"






l_j_f

Reply via email to