71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
# Test for correct handling of backslashes.
 | 
						|
# Note that some lines in each heredoc start with a tab.
 | 
						|
 | 
						|
a=qwerty
 | 
						|
 | 
						|
echo Quoted heredoc:
 | 
						|
cat <<"EOF1"
 | 
						|
a\
 | 
						|
	b
 | 
						|
a\\
 | 
						|
	b
 | 
						|
 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
	-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
 123456 `echo  v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'`
 | 
						|
 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-')
 | 
						|
c\
 | 
						|
EOF1
 | 
						|
echo
 | 
						|
 | 
						|
echo Unquoted heredoc:
 | 
						|
cat <<EOF2
 | 
						|
a\
 | 
						|
	b
 | 
						|
a\\
 | 
						|
	b
 | 
						|
 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
	-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
 123456 `echo  v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-'`
 | 
						|
 123456 $(echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-')
 | 
						|
c\
 | 
						|
EOF2
 | 
						|
EOF2
 | 
						|
echo
 | 
						|
 | 
						|
echo Quoted -heredoc:
 | 
						|
cat <<-"EOF3"
 | 
						|
a\
 | 
						|
	b
 | 
						|
a\\
 | 
						|
	b
 | 
						|
 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
	-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
 123456 `echo  v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-'`
 | 
						|
 123456 $(echo v'-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-')
 | 
						|
c\
 | 
						|
	EOF3
 | 
						|
# In -heredoc case the marker is detected even if it is indented.
 | 
						|
echo
 | 
						|
 | 
						|
echo Unquoted -heredoc:
 | 
						|
cat <<-EOF4
 | 
						|
a\
 | 
						|
	b
 | 
						|
a\\
 | 
						|
	b
 | 
						|
 123456 -$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
	-$a-\t-\\-\"-\'-\`-\--\z-\*-\?-
 | 
						|
 123456 `echo  v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-'`
 | 
						|
 123456 $(echo v'-$a-\t-\\-\"-\x-\`-\--\z-\*-\?-')
 | 
						|
c\
 | 
						|
EOF4
 | 
						|
	EOF4
 | 
						|
# The marker is not detected if preceding line ends in backslash.
 | 
						|
# TODO: marker should be detected even if it is split by line continuation:
 | 
						|
# EOF\
 | 
						|
# 4
 | 
						|
# but currently hush doesn't do it. (Tab before "4" is not allowed, though.)
 | 
						|
echo
 | 
						|
 | 
						|
echo "Done: $?"
 |