|  | # 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: $?" |