| # builtins with exit status inverted |
| |
| ( true ) |
| echo $? |
| ( ! true ) |
| echo $? |
| |
| ( false ) |
| echo $? |
| ( ! false ) |
| echo $? |
| |
| # inverting shouldn't affect exit |
| (exit 42) |
| echo $? |
| |
| ( ! exit 42 ) |
| echo $? |
| |
| # commands requiring an exec with exit status inverted -- broken in bash-2.04 |
| |
| ( ls > /dev/null 2>&1 ) |
| echo $? |
| ( ! ls > /dev/null 2>&1 ) |
| echo $? |
| |
| touch /tmp/notwrite |
| chmod 400 /tmp/notwrite |
| |
| # make sure redirection failures in commands whose exit status is inverted |
| # are handled correctly |
| |
| ( ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| ( ! ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| # now add exit traps, true and false for commands with and without exit |
| # status inversion |
| |
| (trap 'false' 0 ; ! ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| (trap 'false' 0 ; ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| (trap 'true' 0 ; ! ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| (trap 'true' 0 ; ls > /tmp/notwrite ) 2>/dev/null |
| echo $? |
| |
| rm -f /tmp/notwrite |