54 lines
		
	
	
	
		
			925 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			925 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| # 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
 | 
