true; a=1; echo Zero1:$? false; a=1; echo Zero2:$? false || a=1; echo Zero3:$? false || x=$? y=`echo $?`; echo Zero4:$? x:$x y:$y false || x=$? y=`echo $?; exit 3`; echo Three:$? x:$x y:$y #ash sets z=1 instead of z=3. disabled for now #false || x=$? y=`echo $?; exit 3` z=`echo $?`; echo x:$x y:$y z:$z