Evgenij Shkrigunov wrote:

> Description:
> Failed trap ERR inside function. Below is an example of script(see comments):
> 
> #!/bin/bash -E
> 
> err_print() {
>     RETVAL=$?
>     echo "Nonzero exit: $RETVAL"
>     echo "file: ${BASH_SOURCE[0]}"
>     echo "line: ${BASH_LINENO[0]}"
> }
> 
> trap err_print ERR
> 
> 
> failed_func(){
>     # false must be ignored becose &&
>     # but ...
>     false && echo ""
> }
> 
> # false must be ignored becose &&
> false && echo ""
> 
> failed_func

The ERR trap is inherited by the function and ignored.  The simple command
that fails and causes the ERR trap to be run is the call to `failed_func'
itself.  This would be clearer if you added `echo after' as the last
command in the body of `failed_func'.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                       Live Strong.  No day but today.
Chet Ramey, ITS, CWRU    [EMAIL PROTECTED]    http://cnswww.cns.cwru.edu/~chet/


Reply via email to