The commit 'ash,hush: set exit code 127 in "sh /does/not/exist" case' only partly implemented the dash commit '[ERROR] Allow the originator of EXERROR to set the exit status'. This resulted in incorrect error codes for a syntax error: $ ) $ echo $? 0 or a redirection error for a special builtin: $ rm -f xxx $ eval cat <xxx $ echo $? 0 Signed-off-by: Ron Yorston <rmy@pobox.com> Reported-by: Martijn Dekker <martijn@inlv.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
			
				
	
	
		
			13 lines
		
	
	
		
			231 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			13 lines
		
	
	
		
			231 B
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
# syntax error should return status 2
 | 
						|
cat >test.sh <<EOF
 | 
						|
)
 | 
						|
EOF
 | 
						|
chmod +x test.sh
 | 
						|
$THIS_SH ./test.sh
 | 
						|
echo Done:$?
 | 
						|
rm -f test.sh
 | 
						|
 | 
						|
# redirection error with special builtin should return status 1
 | 
						|
(eval cat <does_not_exist)
 | 
						|
echo Done:$?
 |