#!/usr/bin/env bash
declare -r r
r=2 || exit 2
echo 'still there with $?='$?', after: r=2 || exit 2'
if ! r='hello'; then exit; fi
echo "still there with \$?=$?, after: if ! r='hello'; then exit; fi"
typeset -p r
IyEvdXNyL2Jpbi9lbnYgYmFzaAoKZGVjbGFyZSAtciByCgpyPTIgfHwgZXhpdCAyCgplY2hvICdzdGlsbCB0aGVyZSB3aXRoICQ/PSckPycsIGFmdGVyOiByPTIgfHwgZXhpdCAyJwoKaWYgISByPSdoZWxsbyc7IHRoZW4gZXhpdDsgZmkKCmVjaG8gInN0aWxsIHRoZXJlIHdpdGggXCQ/PSQ/LCBhZnRlcjogaWYgISByPSdoZWxsbyc7IHRoZW4gZXhpdDsgZmkiCgp0eXBlc2V0IC1wIHI=