summaryrefslogtreecommitdiffhomepage
path: root/shell/hush_test/hush-misc/heredoc_backslash1.tests
blob: 501af54903c828b722cec4ddfd8e80ebebeb26b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 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: $?"