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