diff --git a/ccollect.sh b/ccollect.sh index fca0a92..490f6e4 100755 --- a/ccollect.sh +++ b/ccollect.sh @@ -417,8 +417,10 @@ while [ "$i" -lt "$no_sources" ]; do rsync $ouropts $useropts "$source" "$abs_destination_dir" fi - if [ "$?" -ne 0 ]; then - echo "rsync reported error $?. The backup may be broken (see rsync errors)." + ret=$? + + if [ "$ret" -ne 0 ]; then + echo "rsync reported error $ret. The backup may be broken (see rsync errors)." fi echo "$($DDATE) Finished backup" diff --git a/test/return-value.sh b/test/return-value.sh index e91de9a..554def0 100755 --- a/test/return-value.sh +++ b/test/return-value.sh @@ -14,3 +14,10 @@ if [ "$ret" -ne 0 ]; then echo "$ret" fi +# if is true, ls is fales +if [ "foo" = "foo" ]; then + ls /surely-not-existent$$ 2>/dev/null +fi + +# but that's still the return of ls and not of fi +echo $?