blob: 39345c51bee94b033621a7018ba7aebf1040ac60 [file] [log] [blame]
Denys Vlasenko63c42af2018-07-24 17:08:04 +02001# check order and content of multiple here docs
2
3cat << EOF1 << EOF2
4hi
5EOF1
6there
7EOF2
8
9while read line1; do
10 read line2 <&3
11 echo $line1 - $line2
12done <<EOF1 3<<EOF2
13one
14two
15three
16EOF1
17alpha
18beta
19gamma
20EOF2
21
22
23# check quoted here-doc is protected
24
25a=foo
26cat << 'EOF'
27hi\
28there$a
29stuff
30EOF
31
32# check that quoted here-documents don't have \newline processing done
33
34cat << 'EOF'
35hi\
36there
37EO\
38F
39EOF
40true
41
42# check that \newline is removed at start of here-doc
43cat << EO\
44F
45hi
46EOF
47
48# check that \newline removal works for here-doc delimiter
49cat << EOF
50hi
51EO\
52F
53
54# check operation of tab removal in here documents
55cat <<- EOF
56 tab 1
57 tab 2
58 tab 3
59 EOF
60
61# check appending of text to file from here document
62rm -f /tmp/bash-zzz
63cat > /tmp/bash-zzz << EOF
64abc
65EOF
66cat >> /tmp/bash-zzz << EOF
67def ghi
68jkl mno
69EOF
70cat /tmp/bash-zzz
71rm -f /tmp/bash-zzz
72
73# make sure command printing puts the here-document as the last redirection
74# on the line, and the function export code preserves syntactic correctness
75fff()
76{
77 ed /tmp/foo <<ENDOFINPUT >/dev/null
78/^name/d
79w
80q
81ENDOFINPUT
82aa=1
83}
84
85type fff
86#ash# export -f fff
87#ash# ${THIS_SH} -c 'type fff'
88
89#hush# bash warns: "here-document at line N delimited by end-of-file",
90#hush# ash allows it,
91#hush# hush errors out for now:
92#hush# # check that end of file delimits a here-document
93#hush# # THIS MUST BE LAST!
94#hush#
95#hush# cat << EOF
96#hush# hi
97#hush# there