echo Default:
echo "true | true:"
  true | true; echo $?
! true | true; echo $?
echo "true | false:"
  true | false; echo $?
! true | false; echo $?
echo "false | true:"
  false | true; echo $?
! false | true; echo $?
echo "exit 2 | exit 3 | exit 4:"
  exit 2 | exit 3 | exit 4; echo $?
! exit 2 | exit 3 | exit 4; echo $?

echo Pipefail on:
set -o pipefail
echo "true | true:"
  true | true; echo $?
! true | true; echo $?
echo "true | false:"
  true | false; echo $?
! true | false; echo $?
echo "false | true:"
  false | true; echo $?
! false | true; echo $?
echo "exit 2 | exit 3 | exit 4:"
  exit 2 | exit 3 | exit 4; echo $?
! exit 2 | exit 3 | exit 4; echo $?

echo Pipefail off:
set +o pipefail
echo "true | true:"
  true | true; echo $?
! true | true; echo $?
echo "true | false:"
  true | false; echo $?
! true | false; echo $?
echo "false | true:"
  false | true; echo $?
! false | true; echo $?
echo "exit 2 | exit 3 | exit 4:"
  exit 2 | exit 3 | exit 4; echo $?
! exit 2 | exit 3 | exit 4; echo $?

echo Done