# foo
# bar
: {fd}< $0
read <&$fd x
echo "$?; $x"
exec {fd}<&-
# a failed read doesn't modify REPLY, so
# use different vars to be less confusing
read <&$fd y
echo "$?; $y"
IyBmb28KIyBiYXIKOiB7ZmR9PCAkMApyZWFkIDwmJGZkIHgKZWNobyAiJD87ICR4IgpleGVjIHtmZH08Ji0KIyBhIGZhaWxlZCByZWFkIGRvZXNuJ3QgbW9kaWZ5IFJFUExZLCBzbwojIHVzZSBkaWZmZXJlbnQgdmFycyB0byBiZSBsZXNzIGNvbmZ1c2luZwpyZWFkIDwmJGZkIHkKZWNobyAiJD87ICR5Igo=